
タイムディレイ分析を使用してHTTPリクエストスマグリングの脆弱性を検出するCLIツール。自動セキュリティテストのために組み込みのCL.TEおよびTE.CLペイロードを備えています。
HTTPリクエストスマグリングは、攻撃者が曖昧なHTTPリクエストを密輸してセキュリティ制御をバイパスし、不正アクセスを取得して悪意のある活動を実行する手法であり、深刻度の高い脆弱性です。この脆弱性は2005年にwatchfireによって発見され、その後2019年8月にJames Kettle - (albinowax)によって再発見され、DEF CON 27およびBlack-Hat USAで発表されました。この脆弱性について詳しく知りたい場合は、Portswiggerのウェブサイトにある彼の詳細な研究ブログを参照してください。このセキュリティツールの背後にある考え方は、指定されたホストのHRS脆弱性を検出することであり、検出は指定されたパーミュテーションを使用した時間遅延手法に基づいて行われます。このツールの詳細については、私のブログ記事を読むことを強くお勧めします。
このツールはPythonで書かれており、使用するにはローカルマシンにPythonバージョン3.xがインストールされている必要があります。入力として、1つのURLまたはテキストファイルで提供するURLのリストを受け取ります。HRS脆弱性検出技術に従って、ツールには約37のパーミュテーションとCL.TEおよびTE.CLの両方の検出ペイロードが組み込まれています。指定されたホストごとに、これらのペイロードを使用して攻撃リクエストオブジェクトを生成し、各リクエストの応答を受信した後の経過時間を計算して脆弱性を判断します。しかし、ほとんどの場合、誤検出の可能性があります。脆弱性を確認するには、Burp Suite Turbo Intruderを使用してペイロードを試すことができます。
ターゲットをスキャンする前に、いくつかの法的免責事項を知っておくことが非常に重要です。スキャンする前に適切な許可を得ている必要があります。そうでなければ、許可のないターゲットをスキャンするためにこのツールを使用しないことをお勧めします。なぜなら、脆弱性を検出するために、(--retry)オプションを使用して複数回複数のペイロードを送信するため、問題が発生した場合、バックエンドのソケットがペイロードで汚染される可能性があり、そのWebサイトの正当な訪問者が実際のコンテンツではなく汚染されたペイロードを見てしまう可能性があるからです。したがって、ターゲットのWebサイトをスキャンする前に適切な予防措置を講じることを強くお勧めします。そうしないと、法的問題に直面する可能性があります。
git clone https://github.com/anshumanpattnaik/http-request-smuggling.git
cd http-request-smuggling
pip3 install -r requirements.txt
usage: smuggle.py [-h] [-u URL] [-urls URLS] [-t TIMEOUT] [-m METHOD]
[-r RETRY]
HTTP Request Smuggling vulnerability detection tool
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL set the target url
-urls URLS, --urls URLS
set list of target urls, i.e (urls.txt)
-t TIMEOUT, --timeout TIMEOUT
set socket timeout, default - 10
-m METHOD, --method METHOD
set HTTP Methods, i.e (GET or POST), default - POST
-r RETRY, --retry RETRY
set the retry count to re-execute the payload, default
- 2
python3 smuggle.py -u <URL>
python3 smuggle.py -urls <URLs.txt>
検出ペイロードを変更して精度を高める必要がある場合は、payloads.jsonファイルのdetection配列内のペイロードを更新できます。
"detection": [
{
"type": "CL.TE",
"payload": "\r\n1\r\nZ\r\nQ\r\n\r\n",
"content_length": 5
},
{
"type": "TE.CL",
"payload": "\r\n0\r\n\r\n\r\nG",
"content_length": 6
}
]
このプロジェクトは MITライセンス の下でライセンスされています。