工具教程 | Wfuzz:The Web fuzzer

admin 2022年4月28日16:40:36评论0 views字数 2795阅读9分19秒阅读模式
工具教程 | Wfuzz:The Web fuzzer

本文仅作技术分享,请勿用于非法用途

Wfuzz: The Web fuzzer

Wfuzz是一款Python开发的Web安全模糊测试工具。Wfuzz是为了方便web应用程序评估而创建。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。比如:参数、认证、表单、目录/文件、Header等。

GitHub:

https://github.com/xmendez/wfuzz

安装

1、Kali Linux中自带此工具

没有安装的点击这里:《VMWare与Kali安装》

2、使用pip安装
pip install wfuzz

3、使用docker方式

docker run -v $(pwd)/wordlist:/wordlist/ -it ghcr.io/xmendez/wfuzz wfuzz

使用

爆破文件、目录

Wfuzz自带字典
├── Injections│   ├── All_attack.txt│   ├── SQL.txt│   ├── Traversal.txt│   ├── XML.txt│   ├── XSS.txt│   └── bad_chars.txt├── general│   ├── admin-panels.txt│   ├── big.txt│   ├── catala.txt│   ├── common.txt│   ├── euskera.txt│   ├── extensions_common.txt│   ├── http_methods.txt│   ├── medium.txt│   ├── megabeast.txt│   ├── mutations_common.txt│   ├── spanish.txt│   └── test.txt├── others│   ├── common_pass.txt│   └── names.txt├── stress│   ├── alphanum_case.txt│   ├── alphanum_case_extra.txt│   ├── char.txt│   ├── doble_uri_hex.txt│   ├── test_ext.txt│   └── uri_hex.txt├── vulns│   ├── apache.txt│   ├── cgis.txt│   ├── coldfusion.txt│   ├── dirTraversal-nix.txt│   ├── dirTraversal-win.txt│   ├── dirTraversal.txt│   ├── domino.txt│   ├── fatwire.txt│   ├── fatwire_pagenames.txt│   ├── frontpage.txt│   ├── iis.txt│   ├── iplanet.txt│   ├── jrun.txt│   ├── netware.txt│   ├── oracle9i.txt│   ├── sharepoint.txt│   ├── sql_inj.txt│   ├── sunas.txt│   ├── tests.txt│   ├── tomcat.txt│   ├── vignette.txt│   ├── weblogic.txt│   └── websphere.txt└── webservices    ├── ws-dirs.txt    └── ws-files.txt
Wfuzz爆破文件
wfuzz -w wordlist URL/FUZZ.php
Wfuzz爆破目录
wfuzz -w wordlist URL/FUZZ

遍历枚举参数值

假如你发现了一个未授权漏洞,地址为:

http://127.0.0.1/getuser.php?uid=123

可获取uid为123的个人信息。

uid参数可以遍历,已知123为三位数纯数字,可以使用wfuzz来完成:
wfuzz -z range,000-999 http://127.0.0.1/getuser.php?uid=FUZZ

POST请求测试

假如你发现一个登录框,没有验证码,想爆破弱口令账户。

请求地址为:

http://127.0.0.1/login.php
wfuzz -w userList -w pwdList -d "username=FUZZ&password=FUZ2Z" http://127.0.0.1/login.php

Cookie 测试

遍历枚举参数值中说到有未授权漏洞,假设这个漏洞是越权漏洞,要做测试的肯定需要让wfuzz知道你的Cookie才能做测试。

如下命令即可携带上Cookie:
wfuzz -z range,000-999 -b session=session -b cookie=cookie http://127.0.0.1/getuser.php?uid=FUZZ

HTTP Headers 测试

假如你发现一个刷票的漏洞,这个漏洞需要伪造XFF头(IP)可达到刷票的效果,投票的请求为GET类型,地址为:

http://127.0.0.1/get.php?userid=666

那么现在我想给userid为666的朋友刷票,可以使用wfuzz完成这类操作:
wfuzz -z range,0000-9999 -H "X-Forwarded-For: FUZZ" http://127.0.0.1/get.php?userid=666

测试HTTP请求方法(Method)

假如你想测试一个网站http://127.0.0.1/支持哪些HTTP请求方法,使用wfuzz:
wfuzz -z list,"GET-POST-HEAD-PUT" -X FUZZ http://127.0.0.1/

使用代理

使用如下命令可以使用代理:
wfuzz -w wordlist -p proxtHost:proxyPort:TYPE URL/FUZZ
多个代理可使用多个-p参数同时指定,wfuzz每次请求都会选取不同的代理进行。

认证

想要测试一个需要HTTP Basic Auth保护的内容可使用如下命令:

wfuzz -z list,"username-password" --basic FUZZ:FUZZ URL

递归测试

使用-R参数可以指定一个payload被递归的深度(数字)。
例如:爆破目录时,我们想使用相同的payload对已发现的目录进行测试,可以使用如下命令:
wfuzz -z list,"admin-login.php-test-dorabox" -R 1 http://127.0.0.1/FUZZ
递归深度为1也就是说当发现某一个目录存在的时候,在存在目录下再递归一次字典。

保存测试结果

wfuzz通过printers模块来将结果以不同格式保存到文档中,一共有如下几种格式:raw、json、csv、magictree、html。
将结果以json格式输出到文件的命令如下:
wfuzz -f outfile,json -w wordlist URL/FUZZ
使用-f参数,指定值的格式为输出文件位置,输出格式。

官方手册

https://wfuzz.readthedocs.io/en/latest/

工具教程 | Wfuzz:The Web fuzzer

扫码关注我们

查看更多精彩内容

原文始发于微信公众号(长风实验室):工具教程 | Wfuzz:The Web fuzzer

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月28日16:40:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   工具教程 | Wfuzz:The Web fuzzerhttps://cn-sec.com/archives/959309.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息