文中涉及讲解burp爆破模块介绍可能不太准确,请大佬批评指正

就dvwa靶场而言,两个常见漏洞让我有了新的认知

第一个接触的漏洞为弱口令漏洞,常见情况下,人们口中的弱口令可能为“姓名缩写”“123456”“生日简写等”接触了dvwa,知道了弱口令不止这些,为此我接触到了各种各样的弱口令字典,如github的fuzzdict和burp自带的字典等,一般来说,弱口令可用的场景为常见登陆窗口,拿dvwa举例子

大概为这样,常规破解不应该为手动测试,更多的为工具测试,例如burp抓包后的破解方式,说到burp的抓包,更多的算是有一点代码审计能力,抓dnva登陆包为下

此为完整的抓包页面,默认情况下,我们只能抓到请求包,然后根据此请求包再拦截请求包对应的响应包

要想爆破出弱口令,应选择此请求包后右键放入攻击模块,也就是inteuder模块

放入后有4种攻击方式

狙击手模块

为单一模块攻击,只能攻击用户名或密码其中一个,使用场景为已知密码或已知用户名的情况下

撞击物模块

与狙击手模块相似,不过狙击手只能用来爆破其中一个的数据,而撞击物为二者相同攻击,为用户名和密码相同下使用

交叉模块

为双模块攻击,可以同时攻击用户名和密码两者,适用于只有一个弱口令字典情况下对用户名和密码都不知道的情景

集束炸弹模块

同样为双模块攻击,不过他适用于两个字典的拥有者,并且对登录窗口的用户名信息 密码信息有一些模糊的猜测情况下使用

言归正传

进行爆破前还有一个步骤,为设定要爆破的位置,此时需要一些分析请求包的基础,以下数据包进行示例

第一行为请求行,标明路径和请求方式还有http版本,后面的username对应着用户名,password为密码

第二行为要请求的域名,你要向谁发起请求,此行为谁的域名,例如你要对百度发起搜索去请求,那么第二行为baidu.com

......

选好位置示例

然后跳到位置旁边的payload模块,因为这里不知道靶场的用户名和密码,不过有些相关猜测,应该为很简单的弱口令,有些模糊概念,而且作者有好几本字典,所以攻击类型为集束炸弹,图中第一行位置模块选择攻击类型,payload模块导入字典

看图中第一个问号,下有一个payload集,默认为1,点击向下箭头还会有2,这代表着你选中的内容顺序,我喜欢将用户名先选中,为payload1,密码第二个选、为payload2

第二个问号代表字典导入,从文件中加载为导入文件按钮,而从列表中添加为导入burp自带的字典,其他的我们目前用不到,不多介绍

这里为导入后显示

然后点击右上角开始攻击按钮

会弹出这个窗口,代表爆破正在进行中

Ps:此图状态码302为错误,因为作者在爆破前忘记设置难度了qwq,已更正,正常爆破响应码为200

这里有一个很有意思的现象,因为判断一个弱口令是否登录会查看它的长度,长度只有独一无二才会代表登录成功,但是作者在等待途中迫不及待查看长度,发现有好几个长度独一无二的(一般来说,错误的长度基本是差不多)查看详情后发现均为带单引号的有,这代表存在sql注入点

可以进行万能密码尝试

进行尝试后发现可以登录

这就很有意思,至于为什么burp的万能密码没有成功,因为它使用的是admin’or”=” 注意,他前面有个单引号,所以没有闭合,引起数据库报错,这算是一种解决方法(后续会有关于SQL的解法,这里不多阐述)

正常解法:

我们跑了大概一万多种,暂停后查看,发现有两个与众不同的长度

发现基本大差不差,唯一的是大小写不同,用这个登录,发现登陆成功

所以在dvwa的低级难度,解决了这个靶场

我们换到中级难度,查看这个靶场,因为这个靶场之前有sql注入,这次我们先排查它

发现单引号没有引起数据库报错,所以这次不存在sql万能密码注入,我们再次进行burp抓包,看看请求包是否有改变

发现username和password都是明文传输,这里还可以用burp进行爆破,同样的步骤不多赘述(作者抓包破解一半发现爆破出了问题,查看源代码(后续会单独说明)是加入了sleep参数,也就是说发送登录请求间隔为两秒,可以在burp设置一下时间延迟参数,只要时间足够,密码会出来的)直接跳到高级难度步骤

因为中等难度没有sql注入,所以高级肯定没有,这里继续抓包查看密码是否为明文传输

发现多了token校验,token就像我们的身份证,具有唯一性,但是这有刷新的机制,所以这里还需要绕过token验证(每一次请求的token都是随机的)这次我们不在爆破用户名,所以password值为payload1,而usertoken为payload2。模式可能我讲的不是很准确,各位观众大大可以看看别人文章,模式我们选择交叉模式,注意,这里一定要把用户名填写为正确的admin,而不是乱输入,因为我们这次不爆破用户名!

具体步骤为 (算是本章重难点,所以全流程,全解析演示一遍,很重要的地方作者可能也理解错误,如果不对,请各位批评指正)

1 输入正确的用户名和错误密码,抓包(用户名一定要正确!!!)

2 放到intruder模块,选择交叉模块(一定是这个模块,因为它的特性)

3 定位payload1和2的位置(方便展示,作者password为payload1 usertoken为payload2)

3.5 Payload正常导入对应字典

在payload2中(重点)

先选择类型为递归提取,选择这个类型是因为token为随时随地变化的,不是固定,而递归提取会将这一过程自动化,虽然提高了难度,但是这个过程避免了手动的进程,提升效率,而递归提取,需要正则表达式,这个后期不能疏忽

4 选择intruder的设置模块

划到下边,找到检索-提取一栏,点击添加按钮

5 选择添加正则表达式 下 的获取响应

6 会出现网页代码,下滑找到usertoken字样,将token值勾选,burp会自动转换为正则表达式,所以这步一定在勾选时注意(不能多,也不能少)

7选中后确定,发现检索-提取 功能栏出现了正则表达式

8继续下滑,找到重定向,将跟随重定向选择为总是

(之所以选择重定向,是因为我们的user-token是每次刷新的,需要用到重定向来帮助我们提取新的user-token,而且我们选择的递归提取依赖于重定向,不启用重定向则提取到无用数据,导致token爆破失败)

9在这些都完成的情况下,就可以点击开始攻击了,进行爆破

结果

这里能够清晰地看到,前两位长度不同,是因为payload1也就是密码字典没有运行,所以他俩长度为4787,而查看第2个请求,payload1为password,payload2为usertoken,并且与其他不相同,我们尝试用这个登录

成功登录

代码分析,低难度

大概意思为,出一个登录窗口,分别为输入用户名(username)和密码(password)的输入框,并且将密码以MD5值的形式返回数据库,生成一个sql数据库语句,意思是将用户输入的用户名和密码和数据库存在的用户和密码进行对比,如果数据库存在且只有一条数据匹配,则会提取用户头像值,并重定向于新窗口,出现欢迎信息:Welcome to the password  protected incorrect area字样

中等难度

基本没有什么变化,不过多了sql敏感词汇的校验和延迟时间(已图中标蓝)

高级难度

不同的是,增加了动态刷新token的交互代码(已图中标蓝)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917782.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917782.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917782.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完美解决Docker pull时报错:https://registry-1.docker.io/v2/

1、错误描述rootubuntu-database:/opt/dify/docker# docker compose up -d [] Running 9/9✘ api Error context canceled …

用 Python 批量处理 Excel:从重复值清洗到数据可视化

引言日常工作中,经常需要处理多份 Excel 表格:比如合并销售数据、清洗重复的用户信息,最后生成可视化图表。手动操作不仅效率低,还容易出错。这篇文章分享一套 Python 自动化流程,用pandas和matplotlib搞定从数据清洗到…

4.5 点云表达方式——图

(一)定义与原理 图4-5-1 点云图结构

wordpress菜单调用的几种常见形式

在WordPress主题开发里,“菜单”在前端页面中常见的调用/输出形式可以归纳为5种,按出现频率从高到低列给你,并给出最简代码片段,方便直接复制粘贴。 标准菜单位置调用(99%场景) 后台“外观→菜单”里把菜单A指派到菜单位置prima…

linux中pthread_t 的值与top -Hp中线程id值的区别

linux中pthread_t 值与top -Hp中线程id值的区别 #include <stdio.h> #include <pthread.h> #include <thread>void thread_func() {printf("child thread id0x%x\n",pthread_self());while(1){ printf("hello world\n");} }int ma…

Idea集成Jenkins Control插件,在IDEA中触发Jenkins中项目的构建

IDEA可以下一个这个插件 Jenkins Control&#xff0c;直接在idea中触发测试环境项目的部署测试环境API-TOKEN&#xff1a;XXXXXXXXXXXXXXXX&#xff08;在jenkins的首页 - 系统管理 - 管理用户中获取&#xff09;配置号后&#xff0c;测试连接&#xff0c;需要是成功的状态&…

【ARM】CMSIS6 介绍

1、 简介CMSIS是通用微控制器软件接口标准(Common Microcontroller Software Interface Standard ) 的简写。CMSIS 包括API、软件组件、工具及工作流程&#xff0c;主要用于简化软件重用、缩短开发人员学习曲线&#xff0c;加快项目构建和调试&#xff0c;从而使产品更快上市。…

【含文档+PPT+源码】基于SSM的旅游与自然保护平台开发与实现

项目介绍 本课程演示的是一款&#xff1f;&#xff1f;&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 带你从零开始部署运行本套系统 该项目附带的源码资料…

QT6 源,十章绘图(2)画刷 QBrush:刷子只涉及填充颜色,线型,填充图片,以及变换矩阵这几个属性,附源代码带注释。

&#xff08;1&#xff09;本类的继承关系如下 &#xff1a;&#xff08;2&#xff09;本类是支持流运算的 &#xff1a;&#xff08;3&#xff09;本类的构造函数与运算符 operator 函数 &#xff1a;关于本类的构造函数&#xff0c;进行以下测试 &#xff1a;只修改画刷的构…

安科瑞智慧能源管理系统在啤酒厂5MW分布式光伏防逆流控制实践

项目信息 光伏装机1MW&#xff0c;3个并网点&#xff0c;低压接 入配电系统。 要求自发自用、余电不上网。解决方案 通过防逆流保护装置&#xff0c;做到刚性控制&#xff0c; 实现并网柜快速切断&#xff1b;通过防逆流管理系统&#xff0c;做到柔性调节&#xff0c; 实现光伏…

VUE-第二季-02

3.Vue组件化 3.1 什么是组件 (1) 传统方式开发的应用 一个网页通常包括三部分&#xff1a;结构&#xff08;HTML&#xff09;、样式&#xff08;CSS&#xff09;、交互&#xff08;JavaScript&#xff09; 传统应用存在的问题&#xff1a; ① 关系纵横交织&#xff0c;复杂…

【OpenGL】LearnOpenGL学习笔记02 - 绘制三角形、矩形

上接: https://blog.csdn.net/weixin_44506615/article/details/149861824 完整代码&#xff1a;https://gitee.com/Duo1J/learn-open-gl 一、渲染管线 在开始之前&#xff0c;我们先简单了解一下图形渲染管线 在渲染3D物体时&#xff0c;我们常用到的一种几何结构为网格模型…

Mysql的事务是什么?

简单来说&#xff0c;MySQL 实现事务的核心就像是给你的数据库操作加了一套“保险和存档”机制。它确保了你的操作要么全部成功&#xff0c;要么全部失败&#xff0c;并且在面对多人同时操作、系统突然崩溃等情况时&#xff0c;数据依然可靠、准确。 为什么需要事务呢&#xff…

测试开发:Python+Django实现接口测试工具

【测试开发天花板】DjangoVuePyTest打造企业级自动化平台&#xff5c;能写进简历的硬核项目最近被几个公司实习生整自闭了&#xff0c;没有基础&#xff0c;想学自动化又不知道怎么去学&#xff0c;没有方向没有头绪&#xff0c;说白了其实就是学习过程中没有成就感&#xff0c…

TFS-2022《A Novel Data-Driven Approach to Autonomous Fuzzy Clustering》

核心思想 这篇论文的核心思想是提出一种全新的、数据驱动的自主模糊聚类&#xff08;Autonomous Fuzzy Clustering, AFC&#xff09;算法。其核心创新在于&#xff0c;它巧妙地结合了模糊聚类的灵活性和基于中位数&#xff08;medoids&#xff09;聚类的可解释性&#xff0c;并…

ELK是什么

ELK 是一个广受欢迎的开源技术栈&#xff0c;用于实时采集、处理、存储、搜索、分析和可视化海量的日志数据&#xff08;log&#xff09;和机器生成的数据&#xff08;machine data&#xff09;&#xff0c;尤其是在 IT 系统监控、应用故障排查、安全分析和业务智能等领域应用广…

[硬件电路-123]:模拟电路 - 信号处理电路 - 常见的高速运放芯片、典型电路、电路实施注意事项

一、高速运放常见芯片型号及特性高速运放&#xff08;高速运算放大器&#xff09;通常指带宽&#xff08;GBW&#xff09;超过10MHz、压摆率&#xff08;SR&#xff09;高于10V/μs的器件&#xff0c;适用于视频处理、通信系统、高速数据采集等场景。以下是典型芯片及其特性&am…

关于解决WinRiver项目动态XmlElement的序列化与反序列化的问题

关于解决WinRiver项目动态XmlElement的序列化与反序列化的问题 一、WinRiver项目流量汇总XML内容 1.1、索引可变,索引下 XmlElement 元素内容固定 1.2、如何将对象 BottomTrack 的动态内容序列化为 XML ? 1.3、如何将 XML 动态内容反序列化为对象 BottomTrack ? 二、XML 动态…

【力扣 Hot100】 刷题日记

D3 128.最长连续序列 错解 class Solution {public int longestConsecutive(int[] nums) {Arrays.sort(nums);int maxCnt 0;int cnt 0;for (int i 0; i < nums.length - 1; i) {if(nums[i] ! nums[i 1] - 1){//如果不连续&#xff0c;取cnt与maxCnt较大值&#xff0c…

飞算JavaAI编程插件:以AI之力赋能Java开发,让编码效率再升级

你是否希望自己敲代码的时候总有一位大佬在你背后帮你保驾护航。想象一下&#xff0c;当你对着Java编辑器敲代码时&#xff0c;身后站了位“隐形大神”——你刚敲出for&#xff0c;它就预判到你要遍历集合&#xff0c;自动补全带泛型的循环逻辑&#xff1b;你手滑把equals写成&…