wfuzz网站模糊测试

https://github.com/xmendez/wfuzz
Wfuzz: The Web fuzzer — Wfuzz 2.1.4 documentatio n

一、wfuzz介绍

WFuzz是基于Python开发的 Web安全模糊测试工具。可以将其理解为Fuzz一款暴力破解工具。根据用户提供的字典,获取web站点的敏感目录和信息。
Wfuzz 提供了一个框架来自动化 Web 应用程序安全评估,并可以帮助您通过查找和利用 Web 应用程序漏洞来保护 Web 应用程序。
kali默认安装。
工作原理:
基于一个简单的概念:它将对 FUZZ 关键字的任何引用替换为给定有效负载的值(数据源)。
这个简单的概念 允许将任何输入注入HTTP请求的任何字段中,允许在不同的Web应用程序组件中执行复杂的Web安全攻击,例如:参数,身份验证,表单,目录/文件,标头等。
   
Wfuzz不仅仅是一个网页内容扫描器:
  • Wfuzz 可以通过查找和利用 Web 应用程序漏洞来帮助您保护 Web 应用程序。插件支持Wfuzz的Web应用程序漏洞扫描程序。
  • Wfuzz是一个完全 模块化的框架,即使是最新的Python开发人员也可以轻松做出贡献。构建插件很简单,只需几分钟。
  • Wfuzz 向之前使用 Wfuzz 或其他工具(如 Burp)执行的 HTTP 请求/响应公开了一个简单的语言界面。这允许您在完整的上下文和对操作的理解下 执行手动和半自动测试,而无需依赖 Web 应用程序扫描程序底层实现。
它的创建是为了促进Web应用程序评估中的任务,它是渗透测试人员为渗透测试人员提供的工具;
测试的漏洞类型主要包括:未授权访问、注入漏洞(目录遍历、SQL 注入、XSS、XXE)、暴力破解登录口令 等

二、安装

$ pip3 install wfuzz
或者
git clone git://github.com/xmendez/wfuzz.git && python setup.py install
或者
$ docker run -v $(pwd)/wordlist:/wordlist/ -it ghcr.io/xmendez/wfuzz wfuzz
kali上自带wfuzz
包路径:/usr/lib/python3/dist-packages/wfuzz (pip3 show wfuzz得到)
字典路径:/usr/share/wfuzz/wordlist/*

三、用法

用法:wfuzz [options] -z payload,params <url>
Options:
  • -h:帮助
  • --help:高级帮助
  • --version:Wfuzz版本详细信息使用
  • -e <type>:列出可用的encoders/payloads/iterators/printers/scripts。wfuzz -e <<category>> 开关检查可用的模块
  • -c:带颜色的输出
  • -v:详细信息
  • --interact:(beta)如果选中,则捕获所有按键。这允许您与程序交互。
  • -p addr:使用ip:port:type格式的代理。重复使用各种代理的选项。如果省略,类型可以是SOCKS4、SOCKS5或HTTP。多个-p参数同时使用多个代理:-p localhost:2222:SOCKS5 -p localhost:8080
  • -t N:指定并发连接数(默认值为10)
  • -s N:指定请求之间的时间延迟(默认值为0)
  • -R depth:递归路径发现深度为最大递归级别(默认值为0)
  • -D depth:最大链接深度级别(默认值为4)
  • -L、 --follow:遵循HTTP重定向
  • -u url:指定请求的url。
  • -z payload:以类型、参数和编码器的形式为每个FUZZ关键字指定有效载荷。可以使用编码器列表,即md5-sha1。编码器可以是链式的,即。md5@sha1.可以使用编码器类别。即url使用帮助作为有效负载来显示有效负载插件的详细信息(您可以使用--slice进行过滤)wfuzz -z help查看支持哪些payload
  • -w wordlist:指定wordlist文件(等同于-z file,wordlist)。
  • -V alltype:所有参数brutforming(allvars和allpost)。不需要FUZZ关键字。
  • -X method:指定请求的HTTP方法,即HEAD或FUZZ
  • -b cookie:为请求指定cookie
  • -d postdata:使用postdata(例如:“id=FUZZ&catalog=1”)
  • -H header:使用头(例如:“Cookie:id=1312321&user=FUZZ”)
  • --basic/ntlm/digest auth:格式为"user:pass"或"FUZZ:FUZZ"或 "domain\FUZ2Z:FUZZ"。wfuzz -z list,"username-password" --basic FUZZ:FUZZ URL
  • --hc/hl/hw/hh N[,N]+:隐藏具有指定代码/行/字/字符的响应(使用BBB从基线获取值)
  • --sc/sl/sw/sh N[,N]+:显示具有指定代码/行/字/字符的响应(使用BBB获取基线值)
  • --ss/hs regex:显示/隐藏内容中具有指定正则表达式的响应
Examples:
wfuzz -c -z file,users.txt -z file,pass.txt --sc 200  http://www.site.com/log.asp?user=FUZZ&pass=FUZZ
wfuzz -c -z range,1-10 --hc=BBB http://www.site.com/FUZZ{something not there}
wfuzz --script=robots -z list,robots.txt http://www.webscantest.com/FUZZ
wfuzz本身自带字典:
┌──(root㉿kali)-[/usr/share/wfuzz/wordlist]
└─# tree                    
.
├── 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
├── Injections
│   ├── All_attack.txt
│   ├── bad_chars.txt
│   ├── SQL.txt
│   ├── Traversal.txt
│   ├── XML.txt
│   └── XSS.txt
├── others
│   ├── common_pass.txt
│   └── names.txt
├── stress
│   ├── alphanum_case_extra.txt
│   ├── alphanum_case.txt
│   ├── char.txt
│   ├── doble_uri_hex.txt
│   ├── test_ext.txt
│   └── uri_hex.txt
├── vulns
│   ├── apache.txt
│   ├── cgis.txt
│   ├── coldfusion.txt
│   ├── dirTraversal-nix.txt
│   ├── dirTraversal.txt
│   ├── dirTraversal-win.txt
│   ├── domino.txt
│   ├── fatwire_pagenames.txt
│   ├── fatwire.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
6 directories, 51 files
wfuzz框架中包含的其他工具:
Wfuzz有效载荷生成器:$ wfpayload -z range,0-10
模糊编码器/解码器:$ wfencode -e md5 test

四、使用

wfuzz -w 字典 http://testphp.vulnweb.com/FUZZ
如上命令使用-w参数指定字典位置,然后跟上一个要测试的地址,所列的例子中有一个FUZZ单词,这个单词可以理解是一个占位符,这样就大概了解了wfuzz的基本运行原理。
  
# 使用文件有效负载别名时的简短方法:
$ wfuzz -w wordlist/general/common.txt http://testphp.vulnweb.com/FUZZ
# 使用外部单词列表生成器时可以使用 stdin 有效负载:
crunch 2 2 ab | wfuzz -z stdin http://testphp.vulnweb.com/FUZZ
# 多个有效负载
wfuzz -w wordlist/general/common.txt -w wordlist/general/common.txt -w wordlist/general/extensions_common.txt --hc 404 http://testphp.vulnweb.com/FUZZ/FUZ2ZFUZ3Z
# 显示响应 –sc, –sl, –sw, –sh
wfuzz -w wordlist/general/common.txt --sc 404,403 http://testphp.vulnweb.com/FUZZ
# 隐藏响应 –hc, –hl, –hw, –hh
wfuzz -w wordlist/general/common.txt --hc 404,403 --hh 8972  http://datalayer.io/FUZZ
# 使用基线  前面使用 –hh 开关过滤“未找到”资源的命令可以使用以下命令完成:
wfuzz -w wordlist/general/common.txt --hh BBB  http://datalayer.io/FUZZ{notthere}
# 正则表达式过滤  参数 “–ss” 和 “–hs” 允许使用正则表达式针对返回的内容过滤响应
wfuzz -H "User-Agent: () { :;}; echo; echo vulnerable" --ss vulnerable -w wordlist/vulns/cgis.txt http://localhost:8000/FUZZ   # 允许查找易受“shellshock”攻击的Web服务器

五、dvwa环境演示

5.1、Wfuzz爆破文件

在测试时最常用了,可以得到站点的管理地址,或者其他文件等等
​wfuzz -c -w /root/桌面/file.txt -u http://192.168.11.45/FUZZ.php  -b "PHPSESSID=v987sdefja03nhp0i9il4te3c7; security=low"
从左往右看,依次是 编号、响应状态码、响应报文行数、响应报文单词数、响应报文字符数、测试使用的Payload
在上述测试中,响应为404的则意味着不存在该文件,200则存在该文件。

5.2、Wfuzz爆破目录

​wfuzz -c -w /root/桌面/dir.txt -u http://192.168.11.45/vulnerabilities/FUZZ  -b "PHPSESSID=v987sdefja03nhp0i9il4te3c7; security=low"

5.3、针对登录功能的暴力破解

随便输入账号密码 admin/password 来抓取数据包看看:
看请求是通过 GET 请求将用户名和密码作为参数进行验证,由于访问 DVWA 的漏洞页面需要认证,所以需要指定 Cookie,然后尝试使用下面的命令对密码进行 FUZZ:
​wfuzz -c -w /usr/share/wfuzz/wordlist/general/medium.txt -u "http://192.168.11.45/vulnerabilities/brute/?username=admin&password=FUZZ&Login=Login" -b "PHPSESSID=b6kqi0cagcn636r6u4o5hg4v73; security=low"
结果:
从图中可以看到第一行,密码为 password 时,Word 和 Chars 与其他不一样,说明,这个密码可能是正确的,然后用这个密码去测试即可。

5.4、针对参数进行SQL注入检测

针对参数中的id进行Fuzz,命令如下:
结果中有一些 payload 获得的返回包不太一样,可以猜测其存在安全风险,其实 Fuzz 的过程就是触发异常,然后针对异常进行深入测试。

六、python使用wfuzz

Python 库 — Wfuzz 2.1.4 文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/348345.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小程序样例3:根据日历创建待办事项

基本功能 1、待办事项查看 选择不同的日期显示不同的待办: 2、选择日期后 新增事项&#xff1a; 3. 点击事项&#xff0c;查看详情 4、删除事项&#xff1a;删除事项3之后&#xff0c;剩余事项2 5、点击日期可以选择更多的月&#xff1a; 实现思路&#xff1a; 1、数据结构&a…

开始学习Vue2(axios和Vuex)

一、Axios 1、Axios 简介 Axios 是一个基于 promise 网络请求库 &#xff0c;作用于node.j s 和浏 览器中。它是 isomorphic 的(即同一套代码可以运行在浏览器 和 node.js 中)。在服务端它使用原生 node.js http 模块, 而在 客户端 (浏览端) 则使用 XMLHttpRequests。 …

通俗易懂理解SegNet语义分割模型

重要说明&#xff1a;本文从网上资料整理而来&#xff0c;仅记录博主学习相关知识点的过程&#xff0c;侵删。 一、参考资料 深度学习之图像分割—— SegNet基本思想和网络结构以及论文补充 一文带你读懂 SegNet&#xff08;语义分割&#xff09; 二、相关介绍 1. 上采样(…

关于爬虫爬取网页时遇到的乱码问题的解决方案。

目录 前言解决措施 前言 最近&#xff0c;我像爬取一下三国演义这本书籍的全部内容。 网站的网址为&#xff1a;https://www.shicimingju.com/book/sanguoyanyi.html 但是我爬取出来的结果是这样的 会遇到乱码。 经过我多方面的调试发现&#xff0c;就是网页的编码和我pycha…

mysql8版本批量造4000个数据SQL

需求&#xff1a; 测试工作中修改单需要构造单元下4000个组合的数据&#xff0c;写个博客来记录&#xff0c;其他类似的可以举一反三。 具体sql&#xff1a; 实现1个产品1个单元下插入4000个组合数据 思路&#xff1a; 在MySQL 8中实现循环插入4000条具有不同主键的记录&a…

jquery多选框

使用hbuilder <!DOCTYPE html> <html><head><meta charset"GBK"><title></title></head><body><table id"myTable"> <tr> <td>黄1</td> </tr> <tr> <td>…

echarts 玫瑰饼图 俩个共用一个图例 可同时改变

export const getRosePie (option {}) > {return {legend: {textStyle: {color: #B0D0E9}},tooltip: {},dataset: {// source: [// [flag, 已解决, 未解决],// [设备告警, 86, 10],// [环境告警, 41, 30],// [任务告警, 24, 67]// ]source: option.source},series…

【Web前端实操15】利用Grid布局完成九宫格

相关知识点&#xff1a; 创建多列 column-count 属性指定了需要分割的列数 列与列之间的间隙 column-gap 属性指定了列与列间的间隙 列边框 column-rule-style 属性指定了列与列间的边框样式 column-rule-width 属性指定了两列的边框厚度 column-rule-color 属性指定了…

如何在 Kotlin Multiplatform 库的 API 中避免请求 Android Context

如何在 Kotlin Multiplatform 库的 API 中避免请求 Android Context 假设你正在进行 Kotlin Multiplatform 项目的开发。 你需要从通用代码中获取用户的 GPS 位置&#xff0c;并且目前没有现成的库可以实现该功能。 这时&#xff0c;你决定编写一个新的 Kotlin Multiplatform …

数据结构——静态链表

1.定义&#xff1a; &#xff08;1&#xff09;单链表&#xff1a;各个结点散落在内存中的各个角落&#xff0c;每个结点有指向下一个节点的指针(下一个结点在内存 中的地址); &#xff08;2&#xff09;静态链表&#xff1a;用数组的方式来描述线性表的链式存储结构: 分配一…

Windows中Zookeeper与kafka的安装配置

一、Zookeeper安装与使用 1.安装包下载 直接在官网下载即可Apache ZooKeeper。 下载后直接解压到本地即可。 2.环境配置 1> 在目录中下增加data和log文件夹 2> 解压目录下的 conf 目录&#xff0c;将目录中的 zoo_sample.cfg 文件&#xff0c;复制一份&#xff0c;重…

STC89C51单片机

本文为博主 日月同辉&#xff0c;与我共生&#xff0c;csdn原创首发。希望看完后能对你有所帮助&#xff0c;不足之处请指正&#xff01;一起交流学习&#xff0c;共同进步&#xff01; > 发布人&#xff1a;日月同辉,与我共生_单片机-CSDN博客 > 欢迎你为独创博主日月同…

【pytorch】pytorch学习笔记(续1)

p22&#xff1a;1.加减乘除&#xff1a; &#xff08;1&#xff09;add(a,b)&#xff1a;等同于ab。 &#xff08;2&#xff09;sub(a,b)&#xff1a;等同于a-b。 &#xff08;3&#xff09;mul(a,b)&#xff1a;等同于a*b。 &#xff08;4&#xff09;div(a,b)&#xff1a…

低成本扫码点餐:1000元全包

在数字化时代&#xff0c;扫码点餐已经成为餐饮行业的标配。然而&#xff0c;对于许多小规模或初创的餐饮企业来说&#xff0c;开发一套完整的扫码点餐系统是一项成本高昂的任务。今天&#xff0c;我们将向您介绍一个低成本、高效的方法&#xff0c;让您用1000块钱轻松搞定一套…

反光衣穿戴识别摄像机

反光衣穿戴识别摄像机是一种基于图像识别技术的智能设备&#xff0c;旨在识别和监测道路上穿戴反光衣的行人和工作者&#xff0c;以提高道路交通安全。 反光衣穿戴识别摄像机利用高清摄像头捕捉道路上的实时图像&#xff0c;并通过图像处理算法进行人体检测和识别&#xff0c;识…

Programming Abstractions in C阅读笔记:p248-p253

《Programming Abstractions in C》学习第69天&#xff0c;p248-p253总结&#xff0c;总计6页。 一、技术总结 “A generalized program for two-player games”如标题所示&#xff0c;该小节强调要学会从一个复杂的程序中抽象出通用的内容——这也是本书的主旨——“Program…

RocketMQ源码阅读-十-事务消息

RocketMQ源码阅读-十-事务消息 交互流程事务消息发送Producer发送事务消息Broker处理结束事务请求Broker 生成 ConsumeQueue 事务消息回查Broker发起回查Producer 接收回查 总结 交互流程 事务消息交互流程图如下&#xff1a;事务消息发送步骤如下&#xff1a; 生产者将半事务…

40元一碗的面,卖不动了?

一、在熙熙攘攘的商场中&#xff0c;两家门店“格格不入” 周五&#xff08;1月19日&#xff09;下午&#xff0c;人群从写字楼向购物中心转移。6点前后&#xff0c;北京合生汇商场的多个过道、上下行扶梯已经熙熙攘攘&#xff0c;B1、B2层的美食街区更是热闹。 一片喧哗中&…

GIS项目实战07:Eclipse资源分享

官网下载&#xff1a;Eclipse Downloads | The Eclipse Foundation 百度网盘分享&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1YBKw8k0a0DouSWZmDg8fYw 提取码&#xff1a;1234 &#xff08;链接失效请私信&#xff09; 无需安装&#xff0c;解压即可使用

小程序系列--12使用 npm 包

一、Vant Weapp 1. 什么是 Vant WeappVant Weapp 是有赞前端团队开源的一套小程序 UI 组件库&#xff0c;助力开发者快速搭建小程序应用。它所使用的是 MIT 开源许可协议&#xff0c;对商业使用比较友好。 官方文档地址 https://youzan.github.io/vant-weapp 2. 安装 Vant 组…