Firefly 是一款高级黑盒模糊测试工具,并非标准资产发现工具。Firefly 提供对目标进行大量内置检查的优势,以检测目标的行为。
go install -v github.com/Brum3ns/firefly/cmd/firefly@latest
或
go get -v github.com/Brum3ns/firefly/cmd/firefly
firefly -h
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
echo 'http://example.com/?query=FUZZ' | firefly
firefly -r '
GET /?query=FUZZ HTTP/1.1
Host: example.com
User-Agent: FireFly'
这将发送 HTTP 原始请求并自动检测所有 GET 和/或 POST 参数进行模糊测试。
firefly -r '
POST /?A=1 HTTP/1.1
Host: example.com
User-Agent: Firefly
X-Host: FUZZ
B=2&C=3' -au replace
请求验证器是最重要的部分。此功能让 Firefly 了解所模糊测试目标的核心行为。重要的是质量优于数量。更多的验证请求将带来更好的质量,但会消耗内部硬件性能(取决于您的硬件)
firefly -u 'http://example.com/?query=FUZZ' -e
载荷可以高度自定义,配合优秀的核心单词列表,可以在 Firefly 内部完全适应载荷单词列表。
显示所有载荷的格式并退出
firefly -show-payload
所有可用篡改器列表
firefly -list-tamper
使用给定类型篡改所有载荷(多个类型可用逗号分隔)
firefly -u 'http://example.com/?query=FUZZ' -e s2c
firefly -u 'http://example.com/?query=FUZZ' -e hex
先 Hex 编码,然后 URL 编码所有载荷
firefly -u 'http://example.com/?query=FUZZ' -e hex,url
firefly -u 'http://example.com/?query=FUZZ' -pr '\([0-9]+=[0-9]+\) => (13=(37-24))'
载荷:
' or (1=1)-- -和" or(20=20)or "将变为:' or (13=(37-24))-- -和" or(13=(37-24))or "其中=>(带空格)表示“替换为”。
过滤选项,用于过滤/匹配包含给定规则的请求。
过滤响应以忽略(过滤掉)状态码 302 和 行数 0
firefly -u 'http://example.com/?query=FUZZ' -fc 302 -fl 0
过滤响应以包含(匹配)正则表达式 和 状态码 200
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
用于请求过程的性能与时间延迟
线程 / 并发数
firefly -u 'http://example.com/?query=FUZZ' -t 35
每个并发的延迟(毫秒)
FireFly -u 'http://example.com/?query=FUZZ' -t 35 -dl 2000
包含载荷的单词列表可以单独添加,或从指定文件夹中提取
包含攻击类型的单个单词列表
firefly -u 'http://example.com/?query=FUZZ' -w wordlist.txt:fuzz
提取文件夹内所有单词列表。攻击类型取决于后缀 <类型>_wordlist.txt
firefly -u 'http://example.com/?query=FUZZ' -w wl/
示例
文件夹
wl内的单词列表名称:
- fuzz_wordlist.txt
- time_wordlist.txt
强烈推荐使用 JSON 输出。因为您可以利用
jq工具浏览结果并进行比较。
(如果 Firefly 通过管道与其他工具链接,标准纯文本可能是更好的选择。)
简单的纯文本输出格式
firefly -u 'http://example.com/?query=FUZZ' -o file.txt
JSON 输出格式(推荐)
firefly -u 'http://example.com/?query=FUZZ' -oJ file.json
欢迎社区中的每个人提出新功能、改进或向 Firefly 添加新的载荷,只需提交拉取请求或在您的建议下添加评论!