### ffuf 命令行帮助内容

Fuzz Faster U Fool - v2.1.0-dev 是一个用于快速模糊测试的工具,支持多种 HTTP 相关功能。以下是命令行选项的详细翻译:

#### HTTP 选项:
- -H`:设置 HTTP 头部 "Name: Value",多个 -H` 参数可以使用。
- `-X`:设置使用的 HTTP 方法。
- -b`:设置 Cookie 数据,格式为 "NAME1=VALUE1; NAME2=VALUE2"`,可模拟 curl 功能。
- `-cc`:设置客户端证书进行身份验证。
- `-ck`:设置客户端密钥,需与证书配合使用。
- `-d`:设置 POST 数据。
- `-http2`:启用 HTTP2 协议(默认:false)。
- `-ignore-body`:不获取响应内容(默认:false)。
- `-r`:跟踪重定向(默认:false)。
- `-raw`:不对 URI 进行编码(默认:false)。
- -recursion`:递归扫描,只支持 `FUZZ 关键字,URL(`-u`)必须以其结尾。(默认:false)。
- `-recursion-depth`:最大递归深度(默认:0)。
- `-recursion-strategy`:递归策略:“default” 基于重定向,“greedy” 对所有匹配进行递归。(默认:default)
- `-replay-proxy`:通过代理重放匹配的请求。
- -sni`:目标 TLS SNI,不支持 `FUZZ 关键字。
- `-timeout`:HTTP 请求超时时间(秒)(默认:10)。
- `-u`:目标 URL。
- -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`:自定义自动校准策略,可以多次使用,隐含 -ac`。
- `-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`:激活的抓取器组(默认:all)。
- `-se`:遇到错误时停止(默认:false)。
- `-search`:从 FFUF 历史中搜索 FFUFHASH 负载。
- `-sf`:当超过 95% 的响应返回 403 Forbidden 时停止(默认:false)。
- `-t`:并发线程数(默认:40)。
- `-v`:详细输出,打印完整 URL 和重定向位置(如果有)以及结果(默认:false)。

#### 匹配器选项:
- `-mc`:匹配 HTTP 状态码,或者使用 "all" 匹配所有状态码(默认:200-299,301,302,307,401,403,405,500)。
- `-ml`:匹配响应中的行数。
- -mmode`:匹配器集操作符,支持 `and 或 `or`(默认:or)。
- `-mr`:匹配正则表达式。
- `-ms`:匹配 HTTP 响应大小。
- -mt`:匹配首次响应字节的毫秒数,支持大于或小于某个值。例如:>100` 或 `<100`。
- `-mw`:匹配响应中的单词数。

#### 过滤选项:
- `-fc`:过滤响应中的 HTTP 状态码,使用逗号分隔的代码或范围。
- `-fl`:按响应中的行数过滤,使用逗号分隔的行数或范围。
- -fmode`:过滤集操作符,支持 `and 或 `or`(默认:or)。
- `-fr`:过滤正则表达式。
- `-fs`:按响应大小过滤,使用逗号分隔的大小或范围。
- -ft`:按首次响应字节的毫秒数过滤,支持大于或小于某个值。例如:>100` 或 `<100`。
- `-fw`:按响应中的单词数过滤,使用逗号分隔的单词数或范围。

#### 输入选项:
- -D`:DirSearch 词表兼容模式,需与 -e` 标志一起使用(默认:false)。
- -e`:逗号分隔的扩展名,扩展 `FUZZ 关键字。
- -enc`:关键字的编码器,例如 'FUZZ:urlencode b64encode'`。
- `-ic`:忽略词表中的注释(默认:false)。
- -input-cmd`:生成输入的命令。使用此输入方法时需要 --input-num` 参数,覆盖 `-w`。
- -input-num`:要测试的输入数量,配合 --input-cmd` 使用(默认:100)。
- `-input-shell`:运行命令时使用的 Shell。
- `-mode`:多词表操作模式。可选模式:`clusterbomb`、`pitchfork`、`sniper`(默认:clusterbomb)。
- `-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
  


- 模糊测试 Host 头部,匹配 HTTP 200 响应。

  ffuf -w hosts.txt -u https://example.org/ -H "Host: FUZZ" -mc 200
  


- 模糊测试 POST JSON 数据,匹配所有不包含文本 "error" 的响应。

  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
  


更多信息和示例: [GitHub](https://github.com/ffuf/ffuf)

#ffuf #模糊测试 #HTTP扫描 #请求参数 #输出选项 GitHub - ffuf/ffuf: Fast web fuzzer written in Go
 
 
Back to Top