SQLiDetector - さまざまなペイロードで複数のリクエストを送信し、さまざまなデータベースの 152 正規表現パターンをチェックすることで、「エラー ベース」の SQL インジェクションを検出するのに役立つシンプルな python スクリプト。

(Simple python script that helps you to detect SQL injection "Error based" by sending multiple requests with different payloads and check for 152 regex pattern for different databases.)

Created at: 2022-07-27 20:04:11
Language: BlitzBasic

SQLi検出器

BurpBouty プロファイルでサポートされている単純な python スクリプトは、9 つ​​のペイロードを持つ複数のリクエストを送信し、さまざまなデータベースの 152 の正規表現パターンをチェックすることで、「エラー ベース」の SQL インジェクションを検出するのに役立ちます。

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| S|Q|L|i| |D|e|t|e|c|t|o|r|
| Coded By: Eslam Akl @eslam3kll & Khaled Nassar @knassar702
| Version: 1.0.0
| Blog: eslam3kl.medium.com
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

ヘッダ

説明

このツールの主なアイデアは、次のようなさまざまなペイロードを使用してエラー ベースの SQL インジェクションをスキャンすることです。

'123
''123
`123
")123
"))123
`)123
`))123
'))123
')123"123
[]123
""123
'"123
"'123
\123

また、さまざまなデータベースの 152 のエラー正規表現パターンに一致します。
ソース: https://github.com/sqlmapproject/sqlmap/blob/master/data/xml/errors.xml

それはどのように機能しますか?

それは非常に簡単です。次のように手順を整理するだけです

  1. サブドメイン グラバー スクリプトまたはツールを使用します。
  2. 収集したすべてのサブドメインを httpx または httprobe に渡して、ライブ サブドメインのみを取得します。
  3. リンクと URL ツールを使用して、waybackurls、gau、gauplus などのすべての waybackurl を取得します。
  4. URO ツールを使用してそれらをフィルタリングし、ノイズを減らします。
  5. パラメータのみを含むすべてのリンクを取得するには、grep を実行します。Grep または GF ツールを使用できます。
  6. 最終的な URL ファイルをツールに渡すと、テストが行​​われます。

ツールに渡す URL の最終的なスキーマは、次のようにする必要があります。

https://aykalam.com?x=test&y=fortest
http://test.com?parameter=ayhaga

インストールと使用法

次のコマンドを実行して、必要なライブラリをインストールします。

~/eslam3kl/SQLiDetector# pip3 install -r requirements.txt 

ツール自体を実行します。

# cat urls.txt
http://testphp.vulnweb.com/artists.php?artist=1

# python3 sqlidetector.py -h
usage: sqlidetector.py [-h] -f FILE [-w WORKERS] [-p PROXY] [-t TIMEOUT] [-o OUTPUT]
A simple tool to detect SQL errors
optional arguments:
  -h, --help            show this help message and exit]
  -f FILE, --file FILE  [File of the urls]
  -w WORKERS, --workers [WORKERS Number of threads]
  -p PROXY, --proxy [PROXY Proxy host]
  -t TIMEOUT, --timeout [TIMEOUT Connection timeout]
  -o OUTPUT, --output [OUTPUT [Output file]

# python3 sqlidetector.py -f urls.txt -w 50 -o output.txt -t 10 

BurpBounty モジュール

同じペイロードを使用するburpbountyプロファイルを作成し、次のような複数の位置にそれらを注入します

  • パラメータ名
  • パラメータ値
  • ヘッダー
  • パス

Pythonスクリプトを使用してテストできないPOSTリクエストには、より効果的で役立つと思います。 げっぷバウンティ1

バープバウンティ2

パラメータをどのようにテストしますか?

このツールと他のツールの違いは何ですか? このようなリンクがある場合、

https://example.com?file=aykalam&username=eslam3kl
2 つのパラメーターがあります。脆弱な可能性のある 2 つの URL を作成します。

  1. 次のようなすべてのペイロードで機能します
https://example.com?file=123'&username=eslam3kl
https://example.com?file=aykalam&username=123'
  1. すべてのリンクに対してリクエストを送信し、正規表現を使用してパターンの 1 つが存在するかどうかを確認します。
  2. 脆弱なリンクについては、プロセスごとに別のファイルに保存されます。

今後のアップデート

  • [x] json オプションを出力します。
  • [x] プロキシ オプションの追加。
  • [x] スレッドを追加して速度を上げる。
  • [x] プログレスバーの追加。
  • [x] ペイロードの追加。
  • [x] BurpBounty プロファイルの追加。
  • [x] パラメータ名自体にペイロードを挿入します。

貢献したい場合は、遠慮なくそうしてください。どういたしまして :)

おかげで

Mohamed El-Khayat と Orwa のすばらしいペイラードとアイデアに感謝します。それらに従ってください、あなたはより多くを学ぶでしょう

https://twitter.com/Mohamed87Khayat
https://twitter.com/GodfatherOrwa

寄稿者

貢献者

連絡を取り合う <3

リンクトイン| ブログ| ツイッター