dvwa1——Brute Force

LOW:

随便猜测一组用户名的密码,login的时候用Burp Suite抓包

然后send to the intruder,用 Clear§ 清除掉系统定义的字段,然后 Add§ 我们要爆破的用户名和密码,Attack type 选择 Cluster bomb 集束炸弹


学习一下

***四种攻击方式***

1. Sniper 狙击手模式

  • 枚举单个参数
  • payload每次只替换一个变量

2. Battering Ram 攻城锤模式

  • 同时枚举多个参数
  • 同时枚举的参数被相同的payload替换

3. Pitchfork 交叉攻击模式

  • 同时枚举多个参数,并为一组
  • 枚举的一组参数被一组payload替换(组内有关联)

4. Cluster Bomb 集束炸弹模式

  • 同时枚举多个参数
  • 为每个参数位置配备独立的payload列表,互不相关

然后进入intruder的payloads部分,在setting里面导入本地的字典,或者手动输入猜测的用户名和密码(记得导入两次,因为有两个参数,在payload set里换位置)

开始攻击!

攻击过程中可以实时刷新length,找出长度不同的那个,就是我们要的用户名和密码

关闭抓包,返回DVWA ,用这组用户名和密码登录

登陆成功!

MEDIUM:

优化地方:

  1. 每次登录失败之后,服务器强制延迟2秒,降低了我们爆破的速度
  2. 单一了错误提示,不再把用户名和密码分开报错
  3. 转义函数

我们分析源码

sleep(2)延迟两秒

再对比low和high的提交部分代码

low:

medium:

    // Sanitise username input
    $user = $_GET[ 'username' ];
    $user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $user ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));

    // Sanitise password input
    $pass = $_GET[ 'password' ];
    $pass = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
    $pass = md5( $pass );

添加了转义函数放注入 mysqli_real_escape_string 

解释:把用户输入的特殊字符(‘ “)加上反斜杠,让其失去破坏性

coclusion:medium难度的与low难度的区别不大,还可以用集束炸弹爆破,但是时间会延长到只能尝试三十组数据一分钟

HIGH:

优化地方

  1. 增加了token验证
  2. stripslashes() 先清理再转义,双倍安全
  3. 延迟时间变得不固定

token验证:

一个只有本人访问/刷新登录页面才会产生的动态密码,和登录密码相互独立,构成双重验证


我们来分析high的php源码,这一行增加了token验证

这里增加了不固定延迟时间

这里使用了stripslashes函数,先去除了多余的斜杠符号,再作用转义函mysqli_real_escape_string

 先随便尝试一组用户名与密码,发现用bp抓包带上了token

 转移到intruder中先clear,再add上password和token

之后去资源池resource pool里面把请求的并发数量改成1,因为token每次验证后报废才会生成新的token

最后进入settings里面,在grep-extract里面进行修改,先选中

点Add,进去之后点refetch response

找到我们需要的value值双击选中复制,此时上面的表达式也发生了变化 

 

ok之后返回payloads,在第一个参数位(password)里面导入字典,类型选择simple list

第二个参数位里面下面的request里输入token,类型选择recursive grep

开始攻击!!!!!!!!!!!!

按长度得到我们的答案

IMPOSSIBLE:

优化部分:

  • 加上了时间锁,其中total_failed_login预设定为了3,所以登录错误大于等于3的时候,就锁死了

  • 参数化绑定:通过将查询语句与参数绑定,参数化查询能够确保输入的数据被正确处理,而不是直接拼接在SQL语句中,100%杜绝了sql注入 

  • 另外还有一些智能的反馈,比如锁定时常,最后尝试时间等,这里不再过多赘述

❀❀❀ 完结撒花!!❀❀❀ 

### 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、付费专栏及课程。

余额充值