关于SmuggleFuzz
SmuggleFuzz是一款功能强大的高级HTTP降级走私安全扫描工具,该工具基于纯Go语言开发,并且高度可配置。SmuggleFuzz为广大研究人员提供了一个可定制的小工具列表,可以帮助我们深入了解目标应用程序的HTTP降级走私安全问题。
SmuggleFuzz支持研究人员自定义实现检测方法,包括监控HTTP状态码和响应大小,而且还可以处理RST_STREAM帧,以更好地定位成功的HTTP走私请求或识别失败的测试向量。
工具安装
发布版本
广大研究人员可以直接访问该项目的【Releases页面】下载并安装最新版本的SmuggleFuzz工具。
手动构建
由于该工具基于纯Go语言开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go语言环境。
然后运行下列命令下载该工具的最新版本源码:
go install github.com/moopinger/smugglefuzz@latest
代码编译
或者,使用下列命令将该项目源码克隆至本地:
git clone https://github.com/moopinger/smugglefuzz.git
然后切换到项目目录中,使用go build构建项目源码:
cd smugglefuzz go build . ./smugglefuzz
工具使用
当前版本的SmuggleFuzz支持三种命令,即scan、request和output。
scan命令
Usage: smugglefuzz scan [flags] Flags: -c, --confirm 发生超时的时候,启用该参数可以判断目标是否存在漏洞 -d, --data string 要发送的HTTP/2数据帧,例如99\r\n (默认为"99\r\n") --dc 禁用输出颜色高亮显示 -f, --file string 包含多个URL格式目标的文件,每个目标单独一行 --filter string 通过字符串或帧类型过滤请求,例如 405, 200, 502, TIMEOUT, RST, GOAWAY,等. -H, --header string 插入一个自定义Header,格式为"Cookie: date=...; session=...;" -h, --help 查看scan命令帮助信息 -i, --interval int 检测超时周期,单位为秒(默认为5秒 -x, --method string 要使用的HTTP请求方法(默认为"POST") -s, --save-success string 如果请求被确认为成功,则将结果存储至文件 -t, --threads int 要运行的线程数量(默认为4) -u, --url string 要扫描的目标URL -w, --wordlist string 要使用的小工具自定义列表
request
Usage: smugglefuzz request [flags] Flags: -a, --attack string 测试Header,由;分隔 -d, --data string 要发送的HTTP/2数据帧默认为"99\r\n") --dc 禁用输出颜色高亮 -H, --header string 插入自定义Header,例如"Cookie: values" -h, --help 查看request命令帮助信息 -i, --interval int 检测超时周期,单位为秒(默认为5秒) -x, --method string 要使用的HTTP请求方法(默认为"POST") -u, --url string 提交请求的目标URL
工具使用演示
scan命令
smugglefuzz scan -u https://example.com/ --confirm smugglefuzz scan -u https://example.com/ --filter TIMEOUT --confirm smugglefuzz scan -u https://example.com/ -w wordlist.txt -t 10 --confirm --filter TIMEOUT smugglefuzz scan --dc -u https://example.com/ -w wordlist.txt -x PUT --confirm smugglefuzz scan -f multiple_targets.txt --confirm -t 10 smugglefuzz scan -f multiple_targets.txt -w wordlist.txt --confirm -s ./save-success.txt --filter TIMEOUT smugglefuzz scan -f multiple_targets.txt -w wordlist.txt -H "Cookie: date=...; session=...;" -s ./save-success.txt -x PUT --filter TIMEOUT
request命令
smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13" smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13" -x PUT smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13" -H "Cookie: date=...; session=...;" --data "223\r\n"
工具运行截图
项目地址
SmuggleFuzz:【GitHub传送门】