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
posted @ 2024-05-09 11:31  DumpInfou  阅读(148)  评论(0编辑  收藏  举报