使用 FFuZ 的基本步骤如下:
1. 安装 FFuZ
首先,确保你已经安装了 ffuf
(FFuZ)。如果没有安装,可以通过以下命令进行安装:
安装 FFuZ(ffuf):
sudo apt-get install ffuf
如果没有在系统的包管理器中找到,可以使用 Go 语言环境来安装:
go install github.com/ffuf/ffuf@latest
然后,确保 $GOPATH/bin
已经在你的环境变量中设置。
2. 基本使用方式
FFuZ 的主要用途是进行目录/文件爆破和参数模糊测试。以下是常用的使用方法:
目录/文件爆破:
ffuf -w /path/to/wordlist.txt -u http://target.com/FUZZ
-w /path/to/wordlist.txt
:指定字典文件,文件中每一行代表一次请求路径。-u http://target.com/FUZZ
:FUZZ
是一个占位符,FFuZ 会在这个位置替换为字典中的条目。
示例:
ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://example.com/FUZZ
这会使用 dirbuster
的字典爆破 example.com
站点上的目录。
自定义头部(如针对特殊需求):
ffuf -w /path/to/wordlist.txt -u http://target.com/FUZZ -H "Authorization: Bearer your_token"
匹配特定的响应码:
有时,你只对某些 HTTP 状态码感兴趣,例如只匹配返回 200 OK
的页面:
ffuf -w /path/to/wordlist.txt -u http://target.com/FUZZ -mc 200
POST 请求爆破参数:
你还可以进行 POST 参数的模糊测试:
ffuf -w /path/to/wordlist.txt -u http://target.com/api -X POST -d "param1=FUZZ¶m2=value"
3. 高级用法
并发与速度调整:
可以通过 -t
参数调整并发量,以提高效率。默认值通常为 40,可以根据目标服务器的性能做相应调整。
ffuf -w /path/to/wordlist.txt -u http://target.com/FUZZ -t 100
匹配不同长度的响应内容:
如果目标服务器返回不同长度的内容,可以通过响应长度来过滤结果:
ffuf -w /path/to/wordlist.txt -u http://target.com/FUZZ -fs 4242
其中 -fs
表示文件大小为 4242 字节时不显示结果。
保存输出:
可以使用 -o
参数保存扫描结果:
ffuf -w /path/to/wordlist.txt -u http://target.com/FUZZ -o output.json -of json
-of json
代表以 JSON 格式保存结果。
4. 常见字典
一些常见的字典文件可以从以下路径找到:
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
(目录爆破)/usr/share/seclists/Discovery/Web-Content/common.txt
(常见路径)
你也可以通过 Seclists 库获取更多字典文件(https://github.com/danielmiessler/SecLists)。
5. 其他参数
-e
:指定扩展名,进行文件爆破时使用。-r
:跟随重定向。-v
:显示详细输出。
示例:
ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://example.com/FUZZ -e .php,.html -t 100 -mc 200 -o result.txt
这会使用字典文件 directory-list-2.3-medium.txt
爆破 example.com
,并尝试 .php
和 .html
扩展名,设置并发 100,匹配 200 响应码,并将结果输出到 result.txt
。
总结:
FFuZ 是一个功能强大的模糊测试工具,能帮助发现隐藏的目录、文件或参数。通过灵活的配置和强大的并发处理能力,能够高效地进行 Web 安全测试。