• 目录模糊测试
  • 对文件和扩展名进行模糊测试
  • 识别隐藏的虚拟主机
  • PHP 参数的模糊测试
  • 参数值的模糊测试
  1. fuff -h
  2. HTTP OPTIONS:
  3. -H 请求 Header 信息, "Name:Value" 使用
  4. -X 使用的 HTTP 方法
  5. -b Cookie 数据 "NAME1=VALUE1; NAME2=VALUE2"
  6. -d POST 数据
  7. -http2 使用 HTTP2 协议 (default: false)
  8. -ignore-body 不获取响应的内容 (default: false)
  9. -r 跟随重定向 (default: false)
  10. -recursion 递归扫描,仅支持 FUZZ 关键字,并且 -u 必须以它结尾(default: false)
  11. -recursion-depth 最大递归深度(default: 0)
  12. -recursion-strategy 递归策略: 默认基于重定向, "greedy" 递归所有匹配(default: default)
  13. -replay-proxy 使用次带来重放匹配的请求
  14. -sni 目标 TLS SNI 不支持 FUZZ 关键字
  15. -timeout HTTP 请求超时(default: 10)
  16. -u 目标地址
  17. -x 代理 http://127.0.0.1:8080 or socks5://127.0.0.1:8080
  18. 常规选项:
  19. -V 显示版本信息 (default: false)
  20. -ac 自动校准过滤选项 (default: false)
  21. -acc 自定义自动校准字符串。可以多次使用。暗示 -ac
  22. -c 着色输出 (default: false)
  23. -config 从文件加载配置
  24. -json JSON 输出,打印以换行符分隔的 JSON 记录 (default: false)
  25. -maxtime 整个进程的最大运行时间 (default: 0)
  26. -maxtime-job 每个作业的最大运行时间 (default: 0)
  27. -noninteractive 禁用交互式控制台功能 (default: false)
  28. -p 请求之间的“延迟”秒数,或随机延迟范围。例如“0.1”或“0.1-2.0
  29. -rate 每秒请求的速率 (default: 0)
  30. -s 不打印附加信息(静默模式) (default: false)
  31. -sa 停止所有错误情况。暗示 -sf -se (default: false)
  32. -se 停止虚假错误 (default: false)
  33. -sf > 95% 的响应返回 403 Forbidden 时停止 (default: false)
  34. -t 并发线程数 (default: 40)
  35. -v 详细输出,打印完整的 URL 和重定向位置(如果有)和结果 (default: false)
  36. 匹配选项:
  37. -mc 匹配 HTTP 状态代码,或“全部”匹配所有内容。 (默认:200,204,301,302,307,401,403,405,500
  38. -ml 匹配响应的行数
  39. -mr 匹配正则表达式
  40. -ms 匹配 HTTP 响应大小
  41. -mt 匹配第一个响应字节的毫秒数,大于或小于。例如:>100 <100
  42. -mw 匹配响应中的单词数量
  43. 过滤器选项:
  44. -fc 从响应中过滤 HTTP 状态代码。逗号分隔的代码和范围列表
  45. -fl 按响应的行数过滤。行数和范围的逗号分隔列表
  46. -f 过滤正则表达式
  47. -fs 过滤 HTTP 响应大小。逗号分隔的大小和范围列表
  48. -ft 按毫秒数过滤到第一个响应字节,大于或小于。例如:>100 <100
  49. -fw 按响应的字数过滤。逗号分隔的字数和范围列表
  50. 输入选项:
  51. -D DirSearch 词表兼容模式。与 -e 标志一起使用。 (默认:假)
  52. -e 逗号分隔的扩展列表。扩展 FUZZ 关键字。
  53. -ic 忽略单词表注释(默认值:false
  54. -input-cmd 命令产生输入。使用此输入法时需要 --input-num。覆盖 -w
  55. -input-num 要测试的输入数。与 --input-cmd 结合使用。 (默认值:100
  56. -input-shell 用于运行命令的 Shell
  57. -mode 多词表操作模式。可用模式:集束炸弹、干草叉、狙击手(默认:集束炸弹)
  58. -request 包含原始 http 请求的文件
  59. -request-proto 与原始请求一起使用的协议(默认值:https
  60. -w Wordlist 文件路径和(可选)关键字,用冒号分隔。例如。 '/path/to/wordlist:KEYWORD'
  61. 输出选项:
  62. -debug-log 将所有内部日志记录写入指定文件。
  63. -o 将输出写入文件
  64. -od 存储匹配结果的目录路径。
  65. -of 输出文件格式。可用格式:jsonejsonhtmlmdcsvecsv(或所有格式的“全部”)(默认值:json
  66. - 或者如果我们没有结果,则不要创建输出文件(默认值:false

1. 目录模糊测试

  1. ffuf -w /opt/useful/SecLists/Discovery/Web-Content/directory-list-2.3-small.txt:FUZZ -u http://SERVER_IP:PORT/FUZZ

2. 页面模糊测试

  1. # 猜解页面的后缀
  2. ffuf -w /opt/useful/SecLists/Discovery/Web-Content/web-extensions.txt:FUZZ -u http://SERVER_IP:PORT/blog/indexFUZZ
  3. # 猜解页面名称
  4. ffuf -w /opt/useful/SecLists/Discovery/Web-Content/directory-list-2.3-small.txt:FUZZ -u http://SERVER_IP:PORT/blog/FUZZ.php

3. 递归模糊测试

  1. # -recursion : 启用递归扫描
  2. # -recursion-depth : 指定深度
  3. # -e : 指定扩展名
  4. ffuf -w /opt/useful/SecLists/Discovery/Web-Content/directory-list-2.3-small.txt:FUZZ -u http://SERVER_IP:PORT/FUZZ -recursion -recursion-depth 1 -e .php -v

4. 子域模糊测试

  1. ffuf -w /opt/useful/SecLists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ -u https://FUZZ.hackthebox.eu/

5. 虚拟主机模糊测试

  1. ffuf -w /opt/useful/SecLists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ -u http://academy.htb:PORT/ -H 'Host: FUZZ.academy.htb'

6. 过滤结果

  1. # -fs :过滤响应大小为 900 K 的数据
  2. ffuf -w /opt/useful/SecLists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ -u http://academy.htb:PORT/ -H 'Host: FUZZ.academy.htb' -fs 900

7. 参数模糊测试

  1. # 测试 GET 参数
  2. ffuf -w /opt/useful/SecLists/Discovery/Web-Content/burp-parameter-names.txt:FUZZ -u http://admin.academy.htb:PORT/admin/admin.php?FUZZ=key -fs 900
  3. # 测试 POST 参数
  4. ffuf -w /opt/useful/SecLists/Discovery/Web-Content/burp-parameter-names.txt:FUZZ -u http://admin.academy.htb:PORT/admin/admin.php -X POST -d 'FUZZ=key' -H 'Content-Type: application/x-www-form-urlencoded' -fs 900
  5. # 值模糊测试
  6. ffuf -w ids.txt:FUZZ -u http://admin.academy.htb:PORT/admin/admin.php -X POST -d 'id=FUZZ' -H 'Content-Type: application/x-www-form-urlencoded' -fs 900