Ffuf爆破神器(超详细)


ffuf是一款Go语言编写的高速Web Fuzzer工具。
这里整理学习了网上的相关文章,你可以在“参考”中看到原始的出处。

为什么是Ffuf

  1. 基于Go语言开发,速度极快,并且跨平台
  2. 可以颜色高亮输出
  3. 强大的过滤系统和代理系统
  4. 能适应多种情景下的模糊测试
  5. 广受好评,持续更新

能同时满足以上5点的,目前只有,应该只有Ffuf了,项目地址:https://github.com/ffuf/ffuf

这款工具有两点我不大满意:

  1. 不能够完整打印出爆破出来的URI路径。
  2. user-agent特征明显,不能随机user-agent。

基本使用

最基本的使用

格式:ffuf -u 目标地址/FUZZ -w 字典
举例:ffuf -u http://192.168.111.131/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt

在这里插入图片描述

多个字典同时使用

靶机案例参见:https://www.yuque.com/u1881995/xwfvho/duyuuv#sIEeo

使用格式:
ffuf -u 目标地址/FUZZ1:FUZZ2 -w 字典:FUZZ1 -w 字典:FUZZ2

举例:
ffuf -u http://192.168.111.132/sqli/example1.php?FUZZ1=FUZZ2 -w /usr/share/SecLists-2022.2/Discovery/Web-Content/burp-parameter-names.txt:FUZZ1 -w /usr/share/SecLists-2022.2/Fuzzing/fuzz-Bo0oM.txt:FUZZ2

在这里插入图片描述

带cookie扫描(-b)

ffuf -u http://192.168.111.130/DVWA-master/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -b "security=low; PHPSESSID=pj0emeebmimf3t9ddpv6pknah0"

首先获取到cookie
在这里插入图片描述

在这里插入图片描述

静默模式(-s)

-s其实就是不打印附加信息,只输出结果

ffuf -u http://192.168.111.130/DVWA-master/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -s

递归扫描(-recursion)

一个普通的扫描如下图:
在这里插入图片描述

尝试递归扫描:
值得注意的是字典内开头不要有 / 不然不会进行递归的,如下图(我手动给字典每行的开头位置添加了/

.\ffuf.exe -u http://192.168.111.130/FUZZ -w D:\字典\SecLists-2022.2\Discovery\Web-Content\common.txt -recursion 2

在这里插入图片描述

正确的递归方式是确保字典开头没有/,这个时候使用 -maxtime就不行了,一起使用-maxtime-job-recursion递归扫描,用于指定每个目录递归扫描时间,避免扫描时间过长。

.\ffuf.exe -u http://192.168.111.130/FUZZ -w D:\字典\SecLists-2022.2\Discovery\Web-Content\common.txt -recursion 2 -maxtime-job 10

在这里插入图片描述

指定扩展名(-e)

存在多个扩展的话,用逗号隔开

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -e .php,.zip

在这里插入图片描述

POST请求爆破

方式1:指明请求地址和请求体【不推荐】

获取请求地址和请求体,并开始爆破,这里有点奇怪,从BurpSuite中得知成功的响应包和长度是与失败的响应包长度不同的,但是Ffuf显示的长度一致。

ffuf -X POST -u http://192.168.111.130/pikachu-master/vul/burteforce/bf_form.php -d "username=admin&password=FUZZ&submit=Login" -w /usr/share/SecLists-2022.2/Passwords/2020-200_most_used_passwords.txt

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

排雷方式1:添加请求头(-H)

由于方式2可以爆破出来,因此怀疑可能是请求头导致的爆破失败。
首先使用方式1中的原始命令,捕获数据包如下:
在这里插入图片描述

接着使用BurpSuite尽可能的删除请求头,发现Content-Type: application/x-www-form-urlencoded会影响到爆破测试结果
在这里插入图片描述

那么就添加此参数,数据包说明参数添加正常,测试结果说明爆破成功

ffuf -X POST -u http://192.168.111.130/pikachu-master/vul/burteforce/bf_form.php -d "username=admin&password=FUZZ&submit=Login" -H "Content-Type: application/x-www-form-urlencoded" -w /usr/share/SecLists-2022.2/Passwords/2020-200_most_used_passwords.txt

在这里插入图片描述

方式2:从文本中加载【推荐】

用别名代替测试的内容,保存为文本。

ffuf -request test.txt -request-proto http -mode clusterbomb -w /usr/share/SecLists-2022.2/Passwords/2020-200_most_used_passwords.txt
  1. -mode 爆破模块,目前有clusterbombpitchfork两个模式具体,类似burpsuite的爆破模块
    1. clusterbomb模式下,用户名单词列表中的每个单词都将与密码单词列表中的每个单词组合使用。就像如果列表 1 中有 4 个单词而列表 2 中有 5 个单词,那么总共会有 20 个请求。(集束炸弹模式)
    2. pitchfork模式下,用户名列表中第一个单词将与密码列表中第一个单词一起使用,同样,用户名列表中第二个单词将与密码列表中第二个单词一起使用。如果两个列表中的单词数量不同,那么一旦单词数量较少的列表耗尽就会停止。
  2. -request标志可用于指定与原始HTTP请求文件,并且将相应使用FUZZ
  3. -request-proto与原始请求一起使用的协议(默认值:https)

在这里插入图片描述

在这里插入图片描述

随机User-Agent

为什么要随机User-Agent

Ffuf不会随机User-Agent,这导致它很容易被安全设备识别出来,更糟糕的是它不支持随机User-Agent,那我们只能自己动手丰衣足食了。
在这里插入图片描述

Ffuf有-H参数允许我们添加请求头,我们可以那它做文章。
我在网上找到了一些User-Agent

  1. https://epi052.github.io/feroxbuster-docs/docs/examples/random-agent/
  2. https://github.com/deibit/cansina/blob/master/core/ua.txt

直接添加User-Agent

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -H "User-Agent: Mozilla/5.0 Windows NT 10.0 Win64 AppleWebKit/537.36 Chrome/69.0.3497.100"

在这里插入图片描述

随机化User-Agent【不好用】

在谷歌上搜索出一个生成随机UA的工具:randomua
一些常见的Web黑客工具允许添加自定义请求头,randomua正式利用了这一点来生成随机UA

  1. 下载安装
git clone https://github.com/picatz/randomua.git
cd randomua
gem install randomua
randomua -h

在这里插入图片描述

  1. 使用工具,但是不知道为什么,失败了。测试了别的工具,也不大好用,gg
ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c "User-Agent: $(randomua -d)"

子域名爆破

kali自带的一些子域名字典:locate dns | grep "/usr/share" | grep ".txt"
在这里插入图片描述

ffuf -w /usr/share/SecLists-2022.2/Discovery/DNS/bitquark-subdomains-top100000.txt -u http://shoppy.htb -H "Host:FUZZ.shoppy.htb" -fs 169

在这里插入图片描述

保存结果

测试发现,需要同时用到-of(指明导出文件类型)、-o(指明导出的文件位置和文件名字)
如果只是使用了其中的一个参数,会导致导出的结果有问题,不能正常查看。
在这里插入图片描述

下面分别是html效果和csv导出的效果
在这里插入图片描述

在这里插入图片描述

匹配响应内容

匹配 http 状态码(-mc)

-mc all意味着匹配所有的状态码(Ffuf本身会过滤一些如404的状态码)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -mc 200,301

在这里插入图片描述

匹配响应包的行数(-ml)

从数据包中可以看到,phpMyAdmin目录的响应体只有7行,推测Ffuf把响应头和响应体之间的回车换行算成1行

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -ml 8

在这里插入图片描述

在这里插入图片描述

匹配字数(-mw)

不知道这个字数代表的是什么字数

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -mw 14

匹配大小(-ms)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -ms 236

匹配正则(-mr)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -mr "phpmyadmin"

过滤响应内容

过滤状态码(-fc)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -fc 403

过滤响应包的行数(-fl)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -fl 8

过滤字数(-fw)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -fw 14

过滤大小(-fs)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -fs 236

过滤正则(-fr)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -fr "phpmyadmin"

其他参数

颜色输出(-c)

目前windows下没有颜色高亮效果(目前指的是最新版本v1.5.0

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c

在这里插入图片描述

设置线程(-t)

线程默认40,我这里修改为50

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -t 50

在这里插入图片描述

请求延时(-p)

 ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -p 0.1

在这里插入图片描述

跟随重定向(-r)

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/common.txt -c -r

超时时间(-timeout)

ffuf -request test.txt -request-proto http -mode clusterbomb -w /usr/share/SecLists-2022.2/Passwords/2020-200_most_used_passwords.txt -timeout 2

测试详情(-v)

ffuf -request test.txt -request-proto http -mode clusterbomb -w /usr/share/SecLists-2022.2/Passwords/2020-200_most_used_passwords.txt -v

代理(-x)

For example: http://127.0.0.1:8080 or socks5://127.0.0.1:8080

 .\ffuf.exe -u http://192.168.111.130/FUZZ -w D:\字典\SecLists-2022.2\Discovery\Web-Content\common.txt -x http://127.0.0.1:8080

在这里插入图片描述

任务最大时间(-maxtime )

-maxtime在有限的时间内完成测试,不论是否完成都将终止,单位为秒

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -c -maxtime 60

在这里插入图片描述

忽略字典的注释信息(-ic)

如下图,有的字典可能有一些注释信息,但是ffuf不知道这是注释的,就当成字典测试了。使用-ic参数即可解决此问题。

ffuf -u http://192.168.111.130/FUZZ -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -c -ic

在这里插入图片描述

参考

https://github.com/ffuf/ffuf
https://codingo.io/tools/ffuf/bounty/2020/09/17/everything-you-need-to-know-about-ffuf.html
ffuf 基础食用指南
Ffuf使用教程

  • 8
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 目录扫描是一种常见的网络安全测试方法,可以帮助安全测试人员找到应用程序中隐藏的文件和目录,以便发现潜在的漏洞。以下是几种常见的目录扫描工具: 1. Dirb:Dirb是一个命令行工具,它可以帮助您在Web应用程序中查找隐藏的文件和目录。它使用字典文件来生成URL,并发出HTTP请求,以查找服务器上是否存在这些URL。 2. Dirbuster:Dirbuster是一个图形用户界面(GUI)工具,可以帮助您查找Web应用程序中的隐藏文件和目录。它可以使用不同的字典文件来生成URL,并使用HTTP请求进行扫描。 3. Gobuster:Gobuster是一个命令行工具,它可以帮助您查找Web应用程序中的隐藏文件和目录。它可以使用不同的字典文件来生成URL,并使用HTTP请求进行扫描。 4. OWASP ZAP:OWASP ZAP是一个图形用户界面(GUI)工具,它可以帮助您进行渗透测试和漏洞扫描。它包含一个目录扫描器,可以帮助您查找Web应用程序中的隐藏文件和目录。 5. Nikto:Nikto是一个命令行工具,它可以帮助您进行Web应用程序的漏洞扫描。它包含一个目录扫描器,可以帮助您查找Web应用程序中的隐藏文件和目录。 总之,目录扫描工具很多,您可以根据自己的需求和实际情况选择合适的工具。 ### 回答2: 目录扫描是一种安全测试方法,用于探测目标主机中存在的目录和文件。以下是目录扫描常见的工具: 1. DirBuster:DirBuster是一个开源的目录扫描工具,用于在Web应用程序中查找隐藏目录和文件。它可以通过字典爆破、数字和字母组合等方法来探测目录。 2. Gobuster:Gobuster是一种快速目录扫描工具,使用命令行界面。它支持多线程和多种字典爆破方式,可以有效地发现目标主机中的隐藏目录。 3. Dirbuster-ng:Dirbuster-ng是Dirbuster的改进版,它具有更快的扫描速度和更多的功能。它支持自定义字典和扩展名检测,并提供了可视化界面。 4. Burp Suite:Burp Suite是一款综合性的Web应用程序安全工具,其中包含了目录扫描的功能。它可以通过自定义字典和高级设置来扫描目标主机中的目录和文件。 5. Nikto:Nikto是一款流行的Web服务器扫描工具,它可以扫描目标主机中的目录和文件,并检查是否存在已知的漏洞。它还提供了漏洞报告和建议修复的功能。 6. Nmap:Nmap是一款网络扫描工具,可以用于扫描目标主机的开放端口和服务版本。它还提供了目录扫描的功能,可以通过设置字典和扩展名来查找目标主机中的文件目录。 这些目录扫描工具是常见的,但并不是唯一的选择。在使用这些工具时,需要根据具体情况选择最适合的工具,并结合其他安全测试方法进行综合评估。 ### 回答3: 目录扫描是指对目标网站进行目录结构扫描,以发现隐藏的目录或文件,从而获取网站的漏洞或敏感信息。常见的目录扫描工具有以下几种: 1. DIRB:DIRB是一款基于字典的目录扫描工具,可通过自定义字典对目标网站进行目录扫描,并提供类似于200、404等状态码的结果。 2. DirBuster:DirBuster是一款使用字典和爆破方法进行目录扫描的工具,能识别目标网站上隐蔽的目录和文件,并提供状态码、响应长度等详细信息。 3. OWASP ZAP:OWASP ZAP是一款强大的安全测试工具,其功能包括目录扫描。用户可以通过ZAP进行基于字典的目录扫描,发现网站目录中的漏洞或敏感信息。 4. Gobuster:Gobuster是一款使用多种爆破方法进行目录扫描的工具,可以根据用户自定义的字典和规则进行扫描,具有速度快、效果好的特点。 5. DirSearch:DirSearch是一款简单易用的目录扫描工具,支持多线程扫描和自定义字典,能够发现目标网站的隐藏目录和文件。 6. ffufffuf是一款快速、灵活的Web目录和子域名扫描工具,其可以使用自定义字典扫描目标网站的目录结构,并提供状态码和响应内容。 这些是目录扫描中常见的工具,不同的工具具有不同的特点和使用方法,选择合适的工具取决于具体的需求和条件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值