9001 - Pentesting HSQLDB
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Grundinformationen
HSQLDB (HyperSQL DataBase) ist das führende SQL-Relationale Datenbanksystem, das in Java geschrieben ist. Es bietet eine kleine, schnelle, mehrthreadige und transaktionale Datenbank-Engine mit In-Memory- und festplattenbasierten Tabellen und unterstützt eingebettete und Servermodi.
Standardport: 9001
Information
Standard-Einstellungen
Beachten Sie, dass dieser Dienst standardmäßig wahrscheinlich im Speicher läuft oder an localhost gebunden ist. Wenn Sie ihn gefunden haben, haben Sie wahrscheinlich einen anderen Dienst ausgenutzt und versuchen, die Berechtigungen zu erhöhen.
Die Standardanmeldeinformationen sind normalerweise sa
mit einem leeren Passwort.
Wenn Sie einen anderen Dienst ausgenutzt haben, suchen Sie nach möglichen Anmeldeinformationen mit
Note den Datenbanknamen sorgfältig - du wirst ihn für die Verbindung benötigen.
Info Gathering
Verbinde dich mit der DB-Instanz, indem du HSQLDB herunterlädst und hsqldb/lib/hsqldb.jar
extrahierst. Starte die GUI-App (eww) mit java -jar hsqldb.jar
und verbinde dich mit der Instanz unter Verwendung der entdeckten/schwachen Anmeldeinformationen.
Beachte, dass die Verbindungs-URL für ein entferntes System ungefähr so aussehen wird: jdbc:hsqldb:hsql://ip/DBNAME
.
Tricks
Java Language Routines
Wir können statische Methoden einer Java-Klasse von HSQLDB aus über Java Language Routines aufrufen. Beachte, dass die aufgerufene Klasse im Klassenpfad der Anwendung vorhanden sein muss.
JRTs können Funktionen
oder Prozeduren
sein. Funktionen können über SQL-Anweisungen aufgerufen werden, wenn die Java-Methode eine oder mehrere SQL-kompatible primitive Variablen zurückgibt. Sie werden mit der VALUES
-Anweisung aufgerufen.
Wenn die Java-Methode, die wir aufrufen möchten, void zurückgibt, müssen wir eine Prozedur verwenden, die mit der CALL
-Anweisung aufgerufen wird.
Lesen von Java-Systemeigenschaften
Erstelle Funktion:
Funktion ausführen:
You can find a list of system properties here.
Write Content to File
Sie können das com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
Java-Gadget verwenden, das im JDK (automatisch in den Klassenpfad der Anwendung geladen) enthalten ist, um hexadezimal codierte Elemente über ein benutzerdefiniertes Verfahren auf die Festplatte zu schreiben. Beachten Sie die maximale Größe von 1024 Bytes.
Create procedure:
Führen Sie das Verfahren aus:
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated