
CLI-Tool zur Erkennung von HTTP-Request-Smuggling-Schwachstellen mittels Zeitverzögerungsanalyse mit integrierten CL.TE- und TE.CL-Payloads für automatisierte Sicherheitstests.
HTTP Request Smuggling ist eine Sicherheitslücke mit hohem Schweregrad, bei der ein Angreifer eine mehrdeutige HTTP-Anfrage einschmuggelt, um Sicherheitskontrollen zu umgehen und unbefugten Zugriff zu erlangen, um böswillige Aktivitäten durchzuführen. Die Schwachstelle wurde bereits 2005 von watchfire entdeckt und später im August 2019 von James Kettle - (albinowax) wiederentdeckt und auf der DEF CON 27 und der Black-Hat USA vorgestellt. Um mehr über diese Schwachstelle zu erfahren, können Sie seine gut dokumentierten Forschungsblogs auf der Portswigger-Website lesen. Die Idee hinter diesem Sicherheitstool ist es, die HRS-Schwachstelle für einen gegebenen Host zu erkennen. Die Erkennung basiert auf der Zeitverzögerungstechnik mit den gegebenen Permutationen. Um mehr über dieses Tool zu erfahren, empfehle ich Ihnen dringend, meinen Blogbeitrag über dieses Tool zu lesen.
Das Tool ist in Python geschrieben und um es zu verwenden, muss Python Version 3.x auf Ihrem lokalen Rechner installiert sein. Es akzeptiert entweder eine einzelne URL oder eine Liste von URLs, die Sie in einer Textdatei bereitstellen müssen. Gemäß der HRS-Erkennungstechnik verfügt das Tool über integrierte Payloads mit etwa 37 Permutationen und Erkennungs-Payloads für sowohl CL.TE als auch TE.CL. Für jeden angegebenen Host wird ein Angriffsanfrageobjekt unter Verwendung dieser Payloads generiert, die verstrichene Zeit nach dem Erhalt der Antwort für jede Anfrage berechnet und die Schwachstelle bestimmt. Meistens kann es jedoch zu Fehlalarmen kommen. Um die Schwachstelle zu bestätigen, können Sie Burp Suite Turbo Intruder verwenden und Ihre Payloads ausprobieren.
Es ist sehr wichtig, einige der rechtlichen Hinweise zu kennen, bevor Sie ein Ziel scannen. Sie sollten vor dem Scannen eines Ziels eine entsprechende Genehmigung einholen; andernfalls empfehle ich, dieses Tool nicht zum Scannen eines nicht autorisierten Ziels zu verwenden. Denn zur Erkennung der Schwachstelle sendet es mit der Option (--retry) mehrfach mehrere Payloads, was bedeutet, dass bei einem Fehler die Möglichkeit besteht, dass der Backend-Socket mit den Payloads vergiftet wird und echte Besucher dieser Website möglicherweise die vergifteten Payloads anstelle des tatsächlichen Inhalts sehen. Daher empfehle ich dringend, vor dem Scannen einer Zielwebsite die entsprechenden Vorsichtsmaßnahmen zu treffen, da Sie sonst mit rechtlichen Problemen konfrontiert werden können.
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>
Wenn Sie der Meinung sind, dass die Erkennungs-Payload geändert werden muss, um sie genauer zu machen, können Sie die Payload in der payloads.json-Datei im Array 'detection' aktualisieren.
"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
}
]
Dieses Projekt ist unter der MIT-Lizenz lizenziert.