HTTP请求走私是一种严重的安全漏洞,攻击者可以利用恶意HTTP请求来绕过安全控制措施并获得未经授权的访问权,然后在目标服务器上执行恶意操作。这款工具的主要目的就是为了帮助广大研究人员在给定的主机上检测HTTP请求走私漏洞。
该工具基于Python语言开发,因此我们需要在本地设备上安装并配置好Python 3.x环境。该工具接受的输入参数为一个URL地址,或在文本中提供URL列表作为输入。该工具实现了HRS楼哦对那个检测技术,并且内置的Payload提供了37种排列变换和检测Payload。针对每台给定的主机,该工具将使用这些URL生成攻击请求对象Payload,并计算每一个请求所返回响应的时间,用以确定漏洞。
广大研究人员可以使用下列命令将该项目源码克隆至本地,并安装好相应的依赖组件:
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 显示帮助信息并退出
-u URL, --url URL 设置目标URL
-urls URLS, --urls URLS
设置目标URL列表(例如:urls.txt)
-t TIMEOUT, --timeout TIMEOUT
设置套接字超时(默认:10)
-m METHOD, --method METHOD
设置HTTP方法(例如:GET或POST,默认:POST)
-r RETRY, --retry RETRY
设置Payload执行重试次数(默认:2)
python3 smuggle.py -u <URL>
python3 smuggle.py -urls <URLs.txt>
如果你想要修改检测Payload以获取更精确的结果,你可以更新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开源许可证协议。
HRSDT:https://github.com/anshumanpattnaik/http-request-smuggling
https://www.cgisecurity.com/lib/HTTP-Request-Smuggling.pdf
https://twitter.com/albinowax
https://portswigger.net/research/http-desync-attacks-request-smuggling-reborn
https://hackbotone.com/blog/http-request-smuggling-detection-tool
精彩推荐