
SleuthQLはpython3をベースに開発された、サイト内でSQLが存在する可能性のあるアドレスを一括クロールするためのツールです。また、burp+sqlmapと組み合わせて一括インジェクションを行うこともできます。 sqlmapで手動・シングルスレッドで一つ一つのインジェクションポイントを識別していくのと比較すると、かなり便利になっています。
SleuthQLは、SQLに類似した構文を含むパラメータと値を特定するためのpython3スクリプトです。特定されると、SleuthQLはSQL風の変数が特定された各パラメータにSQLMap識別子(*)を挿入します。
SleuthQLはBurpのプロキシ履歴のエクスポートを必要とします。このエクスポートを取得するには、プロキシ履歴タブに移動し、すべての項目をハイライトして「Save Items」をクリックするだけです。各リクエストがbase64エンコーディングを使用して保存されていることを確認してください。SleuthQLがプロキシ履歴ファイルをスキャンする際、通常のURLパラメータ以外にも、以下のリクエストコンテンツタイプから脆弱なパラメータを特定できます:
application/jsonapplication/x-www-form-urlencodedmultipart/form-dataこのツールが機能しないケースもあります。具体的には、ネストされたコンテンツタイプ(JSONデータ内のbase64エンコードされたパラメータなど)がある場合、それらのパラメータを特定できません。また、CloudFlareのようなものが関心のないパラメータにフラグを立てることがあまりにも多いため、Cookieも対象外です。
Burp Proのスキャナーは優れていますが、SQLMapほどフル機能ではありません。したがって、リクエストに優先順位を付けてバッチ方式でSQLMapにフィードし、この方法で結果を探すことができれば、SQLインジェクションの検出率を向上させることができます。
Usage:
.:/+ssyyyyyyso+/:.
-/s s/.
.+| SleuthQL |y+.
-s| SQL Injection Discovery Tool |s-
.shh| |ohs.
+hhhho+shhhhhhhhhhhs/hhhhhhhhhhhhhhhh.-hh/
`shhhhhhy:./yo/:---:/:`hhhhhhhhhhhhhhhs``ohho
shhhhhhhhh-`-//::+os: +hhhhhhhhh+shhhh.o-/hhho
+hhhhhhhhh:+y/.:shy/ /hhhhhhhhh/`ohhh-/h-/hhhh/
.hhhhhhhhhsss`.yhhs` .shhhhhhhh+-o-hhh-/hh`ohhhhh`
+hhhhhhhhhhhhyoshh+. `shhhhhs/-oh:ohs.ohh+`hhhhhh/
shhhhhhhhhhhhhhhhhhh/ -//::+yhy:oy::yhhy`+hhhhhho
yhhhhhhhhhhhhhhhhhhh:-:. `+y+-/:/yhhhy.-hhhhhhhs
shhhhhhhhhhhhhhhhhhh+ :/o+:.`` -hhhhhs`.hhhhhhhho
+hhhhhhhs/hhhhhhhhhhy::/:/yhhhy: .+yy/ :hhhhhhhhh/
.hhhhhhh:.hhhhhhhhhhhhhhhhhhhhhhs/- -shhhhhhhhhh`
+hhhhhh+ /hhhhhhhhhhhhhhhhhhhhho/:`+hhhhhhhhhhh/
shhhhy+ -shhhhhhhhhhhhhhhhhhh.// yhhhhhhhhhho
`ohh+://+/.`-/++ooooooooooyhhhhy.`hhhhhhhhhho
/hhhhhhhhhso++//+++oooo+:`sh+`-yhhhhhhhhh/
.s s.
-s Rhino Security Labs s-
.+y Dwight Hohnstein y+.
./s s/.
.:/+osyyyyyyso+/-.
sleuthql.py -d example.com -f burpproxy.xml
SleuthQL is a script for automating the discovery of requests matching
SQL-like parameter names and values. When discovered, it will display
any matching parameters and paths that may be vulnerable to SQL injection.
It will also create a directory with SQLMap ready request files.
Options:
-h, --help show this help message and exit
-d DOMAINS, --domains=DOMAINS
Comma separated list of domains to analyze. i.e.:
google.com,mozilla.com,rhinosecuritylabs.com
-f PROXY_XML, --xml=PROXY_XML
Burp proxy history xml export to parse. Must be base64
encoded.
-v, --verbose Show verbose errors that occur during parsing of the
input XML.
潜在的に脆弱な各リクエストについて、SQLMapのパラメータ化されたリクエストが $(pwd)/$domain/ の下にテキストファイルとして保存されます。
このコードはBSD 3-Clause Clear Licenseの下でライセンスされており、このコードの賠償責任、保証、および特許使用を制限します。詳細についてはlicense.txtを参照してください。