ffuf笔记
wiki:https://github.com/ffuf/ffuf/wiki
GitHub:https://github.com/ffuf/ffuf
#一般扫描
ffuf.exe -w E:\STTools\Tools\0x01字典工具\【整合】SecDictionary\filelak\H2-9000.txt:HTTP -u https://x.com/HTTP -o 扫描结果.html -of html
#敏感文件扫描 2000t
.\ffuf.exe -w E:\STTools\Tools\0x01字典工具\【整合】SecDictionary\filelak\H2-9000.txt:HTTP -u https://jyhires.com/HTTP -t 200 -o 扫描结果.html -of html
#过滤长度3871 使用代理 输出html 200线程
ffuf.exe -w D:\字典\fileleak\H-fileleak-top7000.txt:HTTP -u https://shoes.ptjdy.com/HTTP -t 200 -o shoesERP.html -of html -x socks5://127.0.0.1:10808 -r -fs 3871
ffuf.exe -w D:\字典\fileleak\纯字符-长度4-字符路径字典.txt:HTTP -u http://110.42.194.238:800/HTTP -t 200
ffuf.exe -w D:\字典\fileleak\H2-9000.txt:HTTP -t 200 -H "X-Originating-Ip: 127.0.0.1","X-Remote-Ip: 127.0.0.1","X-Forwarded-For: 127.0.0.1","X-Remote-Addr: 127.0.0.1","Cf-Connecting-Ip: 127.0.0.1" -e .txt,.pub,.bak,.zip,.rar -u http://112.124.21.206/HTTP -fs 0
ffuf.exe -w D:\字典\fileleak\H2-9000.txt:HTTP -t 200 -H "X-Originating-Ip: 127.0.0.1" -H "X-Remote-Ip: 127.0.0.1" -H "X-Forwarded-For: 127.0.0.1" -H "X-Remote-Addr: 127.0.0.1" -H "Cf-Connecting-Ip: 127.0.0.1" -e .txt,.pub,.bak,.zip,.rar -u http://www.ningtingche.com/HTTP -fs 0
ffuf.exe -w "E:\STTools\Tools\0x01字典工具\【整合】SecDictionary\filelak\H2-9000.txt:HTTP" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 uacq" -H "X-Originating-Ip: 127.0.0.1" -H "X-Remote-Ip: 127.0.0.1" -H "X-Forwarded-For: 127.0.0.1" -H "X-Remote-Addr: 127.0.0.1" -H "Cf-Connecting-Ip: 127.0.0.1" -e .txt,.pub,.bak,.zip,.rar -u "http://127.0.0.1:8443/HTTP" -fs 0 -fw 0 -fc 403,500 -x socks5://127.0.0.1:7890
3字符字典
D:\hack工具\【字典处理】合集\【生成】字典生成器\crackdict.txt
基础参数
• -u url地址
• -w 设置字典
• -c 将响应状态码用颜色区分,windows下无法实现该效果。
• -t 线程率,默认40
• -p 请求延时: 0.1、0.2s
• -ac 自动校准fuzz结果
• -H Header头,格式为 “Name: Value”
• -X HTTP method to use
• -d POST data
• -r 跟随重定向
• -recursion num 递归扫描
• -x 设置代理 http 或 socks5://127.0.0.1:10808
• -s 不打印附加信息,简洁输出
• -e 设置脚本语言 -e .asp,.php,.html,.txt等
• -o 输出文本
• -of 输出格式文件,支持html、json、md、csv、或者all
匹配输出(MATCHER)
ffuf提供了仅获取具有特定特征的状态码、行数、响应大小、字数以及匹配正则表达式的模式进行响应输出。
匹配输出 | 过滤输出 | |
---|---|---|
-mc :指定状态代码 | -fs :按响应大小过滤 | |
-ml:指定响应行数 | -fc : 按状态码过滤 | |
-mr: 指定正则表达式模式 | -fr : 按正则表达式模式过滤 | |
-ms:指定响应大小 | -fw : 按字数过滤 | |
-mw:指定响应字数 | -fl :按行数过滤 |
例子:
匹配响应状态码为200,301进行输出
ffuf -w dict.txt -w http://website.com/FUZZ -e .aspx,.html -mc 200,301
不输出 200,300状态码:
ffuf -w dict.txt -w http://website.com/FUZZ -e .aspx,.html -fc 200,301
递归扫描
.\ffuf.exe -w D:\字典\fileleak\H-fileleak-top7000.txt:HTTP -u http://61.155.234.6:13390/HTTP -recursion-depth 3
双字典匹配
.\ffuf.exe -t 200 -w D:\字典\fileleak\H-fileleak-top7000.txt:HTTP2,D:\字典\fileleak\H-fileleak-top7000.txt:HTTP1 -u http://HTTP1/HTTP2
POST请求
通过模糊测试POST请求,实际上可以实现暴力破解。这里需要在password.txt里导入常见的密码字典库,并过滤掉401返回值
.\ffuf.exe -w password.txt -X POST -d "username=admin\&password=FUZZ" -u https://wwww.xxx.cccc/login.php -fc 401
Fuzz Faster U Fool - v2.0.0
HTTP 选项:
-H Header `"Name: Value"`,以冒号分隔。 接受多个 -H 标志。
-X 要使用的 HTTP 方法
-b Cookie 数据`"NAME1=VALUE1; NAME2=VALUE2"` 用于复制为 curl 功能。
-d POST 数据
-http2 使用 HTTP2 协议(默认值:false)
-ignore-body 不获取响应内容。 (默认值:false)
-r 遵循重定向(默认值:false)
-recursion 递归扫描。 仅支持 FUZZ 关键字,并且 URL (-u) 必须以它结尾。 (默认值:false)
-recursion-depth 最大递归深度。 (默认值:0)
-recursion-strategy 递归策略:“默认”用于基于重定向,“贪婪”用于递归所有匹配项(默认值:默认值)
-replay-proxy 使用此代理重播匹配的请求。
-sni 目标 TLS SNI,不支持 FUZZ 关键字
-timeout HTTP 请求超时秒数。 (默认值:10)
-u 目标网址
-x 代理 URL(SOCKS5 或 HTTP)。 例如:http://127.0.0.1:8080 或 socks5://127.0.0.1:8080
常规选项:
-V 显示版本信息。 (默认值:false)
-ac 自动校准过滤选项(默认值:false)
-acc 自定义自动校准字符串。 可以多次使用。 暗示-ac
-ach 每个主机自动校准(默认值:false)
-ack 自动校准关键字(默认值:FUZZ)
-acs 自动校准策略:“基本”或“高级”(默认值:基本)
-c 着色输出。 (默认值:false)
-config 从文件加载配置
-json JSON 输出,打印换行符分隔的 JSON 记录(默认值:false)
-maxtime 整个过程的最长运行时间(以秒为单位)。 (默认值:0)
-maxtime-job 每个作业的最长运行时间(以秒为单位)。 (默认值:0)
-noninteractive 禁用交互式控制台功能(默认值:false)
-p 请求之间的“延迟”秒数,或一系列随机延迟。 例如“0.1”或“0.1-2.0”
-rate 每秒请求率(默认值:0)
-s 不打印附加信息(静默模式)(默认值:false)
-sa 停止所有错误情况。 暗示-sf 和-se。 (默认值:false)
-scraperfile 自定义抓取文件路径
-scrapers 活动刮板组(默认值:全部)
-se 停止虚假错误(默认值:false)
-search 从 ffuf 历史中搜索一个 FFUFHASH payload
-sf 当 > 95% 的响应返回 403 Forbidden 时停止(默认值:false)
-t 并发线程数。 (默认值:40)
-v 详细输出,打印完整的 URL 和重定向位置(如果有)以及结果。 (默认值:false)
匹配器选项:
-mc 匹配 HTTP 状态代码,或“全部”代表所有内容。 (默认值:200,204,301,302,307,401,403,405,500)
-ml 匹配响应中的行数
-mmode 匹配器集合运算符。 两者之一:和,或(默认:或)
-mr 匹配正则表达式
-ms 匹配 HTTP 响应大小
-mt 匹配第一个响应字节的毫秒数,大于或小于。 例如:>100 或 <100
-mw 匹配响应中的字数
过滤器选项:
-fc 从响应中过滤 HTTP 状态代码。 逗号分隔的代码和范围列表
-fl 按响应中的行数过滤。 行数和范围的逗号分隔列表
-fmode 过滤器集运算符。 两者之一:和,或(默认:或)
-fr 过滤正则表达式
-fs 过滤器 HTTP 响应大小。 逗号分隔的大小和范围列表
-ft 按到第一个响应字节的毫秒数过滤,大于或小于。 例如:>100 或 <100
-fw 按响应中的字数过滤。 逗号分隔的字数和范围列表
输入选项:
-D DirSearch wordlist 兼容模式。 与 -e 标志一起使用。 (默认值:false)
-e 逗号分隔的扩展名列表。 扩展 FUZZ 关键字。
-ic 忽略单词列表注释(默认值:false)
-input-cmd 产生输入的命令。 使用此输入法时需要--input-num。 覆盖-w。
-input-num 要测试的输入数。 与 --input-cmd 结合使用。 (默认值:100)
-input-shell 用于运行命令的shell
-mode 多词表操作模式。 可用模式:集束炸弹、干草叉、狙击手(默认:集束炸弹)
-request 包含原始 http 请求的文件
-request-proto 与原始请求一起使用的协议(默认值:https)
-w 单词列表文件路径和(可选)关键字以冒号分隔。 例如。 '/path/to/wordlist:KEYWORD'
输出选项:
-debug-log 将所有内部日志记录写入指定文件。
-o 将输出写入文件
-od 存储匹配结果的目录路径。
-of 输出文件格式。 可用格式:json、ejson、html、md、csv、ecsv(或者,“all”代表所有格式)(默认:json)
-or 如果我们没有结果就不要创建输出文件(默认值:false)
使用示例:
来自 wordlist.txt 的模糊文件路径,匹配所有响应但过滤掉内容大小为 42 的响应。
彩色的,详细的输出。
ffuf -w wordlist.txt -u https://example.org/FUZZ -mc all -fs 42 -c -v
Fuzz Host-header,匹配 HTTP 200 响应。
ffuf -w hosts.txt -u https://example.org/ -H "主机:FUZZ" -mc 200
模糊 POST JSON 数据。 匹配所有不包含文本“错误”的响应。
ffuf -w entries.txt -u https://example.org/ -X POST -H "Content-Type: application/json" \
-d '{"name": "FUZZ", "anotherkey": "anothervalue"}' -fr "error"
模糊多个位置。 仅匹配反映“VAL”关键字值的响应。 有色。
ffuf -w params.txt:PARAM -w values.txt:VAL -u https://example.org/?PARAM=VAL -mr "VAL" -c
更多信息和示例:https://github.com/ffuf/ffuf