Firefly:一款针对Web应用程序的黑盒模糊测试工具
字数 790 2025-08-10 16:34:25
Firefly黑盒模糊测试工具教学文档
1. Firefly概述
Firefly是一款针对Web应用程序的高级黑盒模糊测试工具,由Alpha_h4ck开发并纳入FreeBuf原创奖励计划。它不仅是一个标准的资产扫描与发现工具,还提供了大量内置检测方法来检测目标行为。
2. 工具优势
- 高性能:使用Go语言编写,利用内部硬件实现卓越运行性能
- 智能处理:内置引擎以感应式方法处理每个任务的响应结果
- 高度定制:可处理非常复杂的模糊测试任务
- 过滤验证:提供过滤选项和请求验证以避免无效结果
- 友好界面:提供清晰的错误提示和调试输出
- 内置资源:包含预置Payload库
- 编码功能:支持Payload修改和多种编码方式
3. 安装指南
3.1 环境准备
首先需要安装配置Go语言环境
3.2 安装方法
方法一:源码编译安装
git clone https://github.com/Brum3ns/firefly.git
cd firefly/
go build cmd/firefly/firefly.go
./firefly -h
方法二:直接安装
go install -v github.com/Brum3ns/firefly/cmd/firefly@latest
4. 使用指南
4.1 基本命令
查看帮助信息:
firefly -h
4.2 目标设置
基本目标设置:
firefly -u 'http://example.com/?query=FUZZ'
带超时设置:
firefly -u 'http://example.com/?query=FUZZ' --timeout 7000
指定多种方法和协议:
firefly -u 'http://example.com/?query=FUZZ' -m GET,POST,PUT -p https,http,ws
4.3 Payload操作
查看Payload:
firefly -show-payload
Payload类型修改:
firefly -u 'http://example.com/?query=FUZZ' -e s2c
设置编码(十六进制):
firefly -u 'http://example.com/?query=FUZZ' -e hex
多重编码:
firefly -u 'http://example.com/?query=FUZZ' -e hex,url
Payload正则替换:
firefly -u 'http://example.com/?query=FUZZ' -pr '\([0-9]+=[0-9]13=(37-24))'
4.4 过滤设置
状态码过滤:
firefly -u 'http://example.com/?query=FUZZ' -fc 302 -fl 0
正则匹配过滤:
firefly -u 'http://example.com/?query=FUZZ' -mr '[Ee]rror (at|on) line \d' -mc 200
firefly -u 'http://example.com/?query=FUZZ' -mr 'MySQL' -mc 200
4.5 字典设置
使用字典文件:
firefly -u 'http://example.com/?query=FUZZ' -w wordlist.txt:fuzz
使用字典目录:
firefly -u 'http://example.com/?query=FUZZ' -w wl/
4.6 结果输出
文本格式输出:
firefly -u 'http://example.com/?query=FUZZ' -o file.txt
JSON格式输出:
firefly -u 'http://example.com/?query=FUZZ' -oJ file.json
5. 项目地址
Firefly项目托管在GitHub:
https://github.com/Brum3ns/firefly
6. 应用场景
- Web安全测试
- 模糊测试(Fuzz Testing)
- 黑盒测试
- Web应用程序漏洞探测
7. 注意事项
- 使用前请确保获得目标系统的测试授权
- 建议在测试环境中先进行验证
- 注意设置合理的超时时间避免长时间等待
- 根据实际需求选择合适的过滤条件
- 对于复杂任务,建议先进行小规模测试再扩大范围