Wfuzz:功能强大的web漏洞挖掘工具

0 引言

       在靶场复现PRIME:1发表后,小伙伴们发现wfuzz这个工具好强大,都想听小智聊聊它,今天这就来啦,都带好小板凳哦~

1 FUZZ技术简介

       模糊测试是一项简单的技术,但它却能揭示出程序中的重要 bug。在许多程序中,一个小小的错误输入就有可能导致服务的崩溃,进而影响整个操作系统。因此,测试人员需要进行模糊测试,来发现哪些功能点能被这样的错误输入所利用。模糊测试指用随机坏数据(fuzz)攻击一个程序,然后观察哪里遭到了破坏。其特点在于不符合逻辑:自动模糊测试不去猜测哪个数据会导致破坏,而是将尽可能多的杂乱数据投入程序中,所以可以覆盖到测试人员无法预料的漏洞点。

2 工具使用

       Wfuzz是一个基于Python的Web爆破程序,它支持多种方法来测试WEB应用的漏洞。它可以测试的漏洞包括注入、路径遍历、溢出、跨站脚本、可预测的认证、可预测的session id、可预测的目录和文件、认证漏洞、不安全的直接对象引用等。Kali中自带wfuzz,也可以安装在Windows系统中。

       Wfuzz中自带多个字典,可以根据测试目标特征进行指定:

2.1 爆破后台文件

wfuzz -w wordlist URL/FUZZ.php

其中wordlist为指定的字典,将文件名写为“FUZZ”,程序即可自动使用字典遍历文件名。

2.2 爆破后台目录

wfuzz -w wordlist URL/FUZZ

将url中我们想要猜测的部分写为“FUZZ”,程序即可自动使用字典遍历此url下的后台目录。

2.3 爆破url参数

wfuzz -z range,000-999 http://127.0.0.1/index.php?id=FUZZ

range为id参数的取值范围,-z为指定payload模块。将id值写为“FUZZ”,可测试当前url中的未授权访问漏洞。

wfuzz -z range,000-999 -b session=session -b cookie=cookie http://127.0.0.1/index.php?uid=FUZZ

如果当前网站的测试需要cookie或session,可使用-b指定。

       除此之外,小智在《靶场复现-Prime:1》中使用了wfuzz的爆破url参数名功能:

       在暴力破解index.php的参数名时,小智使用了最常用的字典common.txt,将参数名写为FUZZ,程序即可帮我们猜解出可以访问的参数名。

2.4 递归测试

wfuzz -z list,"admin-login.php-test.php" -R 1 URL/FUZZ

使用-R可以指定递归的深度。在上面的payload中,“-R 1”意为在我们已经测试出来的目录再递归一次字典,测试其下一级目录。

2.5 登录框弱口令爆破

wfuzz -w /usr/share/wfuzz/wordlist/general/mima.txt -w /usr/share/wfuzz/wordlist/general/mima.txt -d "username=FUZZ&password=FUZZ" http://192.168.46.129/vulnerabilities/brute

       因为此处是同时爆破两个参数,所以需要指定两次字典。-d指使用POST传参,后接当前登录界面的传参格式。

2.6 自定义headers爆破

wfuzz -w word.txt -H “user-agent:aaa” URL/FUZZ

有些网站需要user-agent,这时我们需要用-H来自定义。

2.7 代理设置

        当我们遇到访问国外站点,或其它需要使用代理的情况,可以在fuzz中使用 “-p proxy 地址”设置代理。代理支持SOCKS4、SOCKS5也支持多个代理,只需要使用多个-p参数。

wfuzz -w word.txt -p localhost:8000 url

设置SOCKS4代理:

wfuzz -w word.txt -p localhost:8000SOCKS4 url

2.8 并发控制

       如果FUZZ测试目标存在WAF,发送请求并发太高会被禁止wfuzz 中可以使用 -t 参数来增加或减少并发数量,也可以使用 -s 指定每次请求后的间隔秒数

wfuzz -w wordlist -t 5 URL/FUZZ

不指定并发数量默认为10。

3 结果显示

ID::执行顺序

Response::HTTP响应状态

Lines:HTTP 响应的行数

Word:HTTP 响应单词个数

Char:HTTP 响应的字节数

Payload:尝试使用的字典内容

3.1 过滤器

       wfuzz执行完成后可能会出现成百上千的结果,而过滤器可以直接过滤掉我们不想看到的错误码给我们节省很多寻找结果的时间。-hl、-hw、-hc分别为按响应行数过滤、按响应单词数过滤和按响应字节数过滤。例如小智在《靶场复现-Prime:1》中使用了-hw按单词数过滤。

       图中对参数名的遍历一共出现了951个结果,但大部分不是我们需要的请求,无法访问到提供有用信息的文件。当遍历到能访问到文件的结果时,响应的长度一定和其它的不一样。所以我们选择过滤出现次数最多的长度,剩下的一般就是我们想要的结果。

获取更多知识请关注微信公众号:智检安全

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值