DVWA Brute Force(暴力破解) 渗透操作流程

DVWA Brute Force(暴力破解) 渗透操作流程

burpsuite安装教程(b站up主):linux环境Burpsuite pro安装并创建桌面快捷启动 - 哔哩哔哩

暴力破解原理篇: 

暴力破解跟社会工程学有一定的联系,是通过我们对用户进行一些信息收集,对对方可能使用的密码使用程序进行一个自动生成,然后再使用程序对对方进行一个自动爆破的过程,比如对方可能使用姓名的拼音+手机号,或者手机号+姓名的拼音,或者.一类的符,我们就可以利用这些信息进行一个针对生成,然后对对方进行相应的爆破

kali自带的字典生成工具: crunch

crunch 最小位数 最大位数 指定生成范围

1.Low等级

随便输入几个帐号和密码 看网站的提示,发现不管输入几次都是显示帐号和密码不对

既然Low等级没有那么多限制,我们直接准备好字典,打开burpsuite,开启拦截功能

拦截到的这个request包也就是我们请求的包,可以看到我们随便输的帐号和密码也在里面,右击,发送到intruder模块,或者按Ctrl+I发送到intruder

这里提供的攻击方式有四种分别是:

机制场景请求量
Sniper(狙击手模式)单Payload字典 → 逐个替换所有标记位置暴力破解单个输入点(如密码、API密钥)Payload数量 × 1个位置对 username=§admin§&password=123 中的 §admin§ 轮流替换字典值。
Battering ram(攻城锤模式)单Payload字典 → 同时替换所有标记位置多个位置输入相同内容(如批量修改邮箱、统一填充验证码)Payload数量 × 1对 email=§test@a.com§&confirm_email=§test@a.com§ 中两个标记位同时替换相同值
Pitchfork(草叉模式)多Payload字典 → 按顺序并行替换不同位置关联字段组合攻击(如用户名+密码、手机号+验证码)min(字典1数量, 字典2数量, ...)
  • 字典1:[user1, user2, user3] → 替换 username=§*§

  • 字典2:[pass1, pass2] → 替换 password=§*§
    最终组合:(user1,pass1)(user2,pass2)字典较短者决定总次数

Cluster bomb(集束炸弹模式)多Payload字典 → 笛卡尔积组合替换不同位置全字段穷举爆破(如撞库、多参数模糊测试)字典1数量 × 字典2数量 × ...
  • 字典1:[admin, test] → 替换 username=§*§

  • 字典2:[123, abc] → 替换 password=§*§
    最终组合:(admin,123)(admin,abc)(test,123)(test,abc)

因为我只有一个字典,且正确帐号密码都包含在字典中,这里我直接选择Cluster bomb模式,点击intruder的positions位置我们现在就可以看到我们刚才的那个包,我们选中我们想要使用字典换掉内容的地方,然后全部加上标记

​​​​

 我们再换到intruder的payload,选中payload set 改成2因为我们有两个位置,payload type为simple list

然后再点击Load,我们选中准备好的字典加进去

点击Start attack开始爆破 

 爆破完之后 我们找到长度最特殊的,这个就是真正爆破成功的

关闭拦截功能,回到暴力破解页面进行验证,发现是正确的

Low等级暴力破解代码分析

为了能更好的读懂代码,我对代码做了中文的注释,接通下来我们可以看看

首先就是接收用户名密码,查询数据库的语句

安全问题1:我们可以清楚的看到 我们后台的php使用的是get方式获得从前台传过来的数据,这样会导致在url中会明文显示username和password

安全问题2: md5现也已被证实是不安全的加密,但在这里,他只是加密过跟数据库比对

安全问题3: sql注入的漏洞,因为他的代码是 直接查询的数据库

$query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";

这样的话 我们也可以在用户名的位置位入 admin ' -- 使后面的内容注释掉,假如数据库中存在,admin这个用户,就会直接登入成功。

接下来我们看下面的代码

安全漏洞4:用户名枚举

在login failed那里,假如登陆失败,他会提示我们帐号或密码错误,这样我们可以判断我们注入的时候,假如我们的用户名没有猜对,他会显示用户名密码不对,从而被我们利用到信息

 2.Medium等级

Medium的爆破是与Low的爆破相同的,这里我们直接看代码的部分

Medium等级暴力破解代码分析

可以看到,在用户名和密码那里,都加了mysqli_real_escape_string来转义特殊的字符,防止被随便sql注入进去,但是这种只是简单的防御,对sql注入的的防御不够完整

安全问题1:我们可以清楚的看到 我们后台的php使用的是get方式获得从前台传过来的数据,这样会导致在url中会明文显示username和password

安全问题2: 只限制了间隔时间,没有设置次数的限制,这种只能限制我们穷举的速度,并不能对我们进行实质性的防御

3.High等级暴力破解

来到high等级,先随便输入几个密码试试,发现还没有输入次数限制,打开burpsuite,burpsuite打开拦截模式

拦截到数据包,发现high等级对比前两个等级已经生成了随机的token,在面对这种数据包的时候我们需要把token换成每次生成的token

我们按下ctrl+i把包发给Intruder,打开intruder 把attacktype改成Pitch Fork

 然后把password和token里面的值加上标记

payload还是选择第一个位置,载入字典

因为我们要每次都拿到这个token值,所以我们要建一个资源池,设置一个1 

在setting里面add一下token的位置

选中并复制token的值,然后再在payload里面设置第二个payload,不要忘记把第二个payload粘贴进去

点击start attack等待就可以

High等级代码分析

high等级跟medium等级一样,使用mysqli_real_escape_String这个特殊字符转换做了防sql注入 ,还做了防止csrf,在这里每次都验证了token

 4.Impossible等级

impossible等级对暴力破解做了非常严格的保护,首先 就是对参数的传递使用了POST而不是Get,修复了前几个等级会在地址拦明文显示的问题

 防止csrf的机制,双重token,请求token+会话token

 防止sql注入,对传过来的数据进行转译,还使用PDO进行预处理

输错密码锁定15分钟 

允许最大输入次数和锁定时间

### DVWA Brute Force 暴力破解 实验教程 #### Low 和 Medium 级别暴力破解 对于低级别和中级别的暴力破解,由于这些级别的防护措施较为简单,可以利用工具如Burp Suite来进行自动化攻击。具体来说: - **Low Level**: 这一等级几乎没有任何安全机制来阻止暴力破解尝试。用户名和密码通过HTTP GET请求发送,并且没有验证码或登录失败后的延迟处理。因此,使用Burp Intruder模块并加载常用弱口令列表可以直接发起大量猜测尝试[^4]。 ```bash # 使用 Burp Suite 的步骤如下: 1. 启动浏览器代理设置指向本地监听端口8080; 2. 访问DVWA网站并通过拦截功能捕获登录表单提交的数据包; 3. 将数据包转发至Intruder面板配置参数位置(通常为username和password字段); 4. 加载预定义的字典文件作为payload选项; 5. 开始攻击过程观察返回结果寻找有效凭证组合。 ``` - **Medium Level**: 中级增加了简单的防御手段——每当验证不成功时会触发`sleep(2)`函数使响应时间延长两秒钟。尽管如此,这并不会显著影响实际操作中的成功率;只需耐心等待每次迭代完成即可继续测试其他候选值[^2]。 #### High 和 Impossible 级别暴力破解 随着保护强度增加到了高级阶段,则引入了更复杂的逻辑用于检测异常行为模式以及采取相应对策加以遏制潜在威胁活动的发生频率及其效率表现形式上有所区别于之前所描述过的简易型方案设计思路框架结构特点方面存在差异之处在于: - **High Level**: 此处不仅限定了最大重试次数还加入了基于IP地址白名单管理策略从而进一步提升了整体安全性水平线以上述两点为核心要素构建而成的一套综合性的访问控制体系架构模型实例化应用案例研究对象之一即为此版本下的用户认证流程环节部分实现细节说明文档记录内容摘要概述。 - **Impossible Level**: 几乎无法被传统意义上的穷举法攻破。该层面上除了继承自高阶版的安全特性外更是额外集成了诸如图形验证码之类的交互式组件用来增强人工干预成分比例进而达到更好的防伪效果目的所在[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值