简介
ffuf 是一个用 Go 语言编写的网络模糊测试工具,主要有以下用途:
- 目录发现:ffuf 尝试从不同的路径和文件名来扫描 Web 服务器,从而发现隐藏的目录和文件。
- 子域名枚举:通过 fuzzing 子域名,可以帮助发现目标域中的其他子域。
- HTTP 方法扫描:测试不同的 HTTP 方法(GET、POST、PUT 等)。
- 参数级模糊测试:通过针对 URL 中的特定参数进行更深入的挖掘,发现隐藏的漏洞。
首次用户
-
使用
x env use ffuf即可自动下载并使用 -
x-cmd 提供1分钟教程,其中包含了 ffuf 命令常用功能的 demo 示例,可以帮你快速上手 ffuf 。
-
使用案例:
# 安装 ffuf
x env use ffuf
# 模糊查询来自 wordlist.txt 的文件路径
ffuf -w wordlist.txt -u https://example.org/FUZZ
# 模糊查询来自 wordlist.txt 的文件路径,并具有彩色和详细输出
ffuf -w wordlist.txt -u https://example.org/FUZZ -c -v
# 模糊查询 Host-header,匹配 HTTP 200 响应
ffuf -w wordlist.txt -u https://example.org -H "Host: FUZZ" -mc 200
技术特点
- 性能优异: ffuf 使用了并发,可以同时发送多个请求,提高测试效率,并允许用户可以通过调整
-t参数来指定并发线程数目(默认40)。 - 设置代理:ffuf 支持像 curl 一样通过命令行参数
-x <proxy>来设置代理,例如-x 'http://127.0.0.1:8080' - 可自定义性: 用户可以指定不同的字典文件、HTTP 方法、头部、参数等,以满足特定的测试需求。
- 匹配和过滤:
- 自动过滤输出:在扫描过程中,ffuf 根据 HTTP 响应的状态码、内容长度等自动过滤结果,排除不符合条件的响应。
- 过滤器:用户可以通过命令行过滤参数来过滤扫描结果,例如
-fc过滤 HTTP 响应的状态码,-ft过滤响应的时间。 - 匹配器:每个过滤器都有其对应的匹配器,它们的功能完全相同,但效果却完全相反,例如
-mt匹配响应时间。
- 多种输出格式:支持输出 json、ejson、html、md、csv、ecsv,这使得结果的处理和分析更加方便。
竞品和相关作品
- wfuzz:Wfuzz 是通过将占位符 FUZZ 替换为 wordlist 值来工作的模糊测试工具。
- gobuster:GoBuster 是另一种用 Go 语言编写的模糊器,最常用于模糊 URI、目录/路径、DNS 子域、AWS S3 存储桶、虚拟主机名。
进一步阅读
- ffuf 源代码 - ffuf 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 ffuf 和参与社区贡献。
- ffuf 官网文档 - 提供了非常丰富的使用案例和技术分析文档。
- 掌握 FFuf:基本和高级命令 - 该文章介绍了 ffuf 的基本用法和一些高级命令。
扫描关注微信官方公众号 : oh my x
获取开源软件和 x-cmd 最新用法