当前位置: 首页 > news >正文

DVWA Brute Force(暴力破解)Low/Medium/High 完整攻击流程

前置基础

  1. 访问路径:DVWA→Brute Force,登录表单:账号+密码,GET传参username&password&Login=Login
  2. 核心逻辑:后端直接拼接SQL查询,无验证码、无登录失败锁定,可批量字典爆破账号密码
  3. 切换安全等级:DVWA Security 切换 Low / Medium / High
  4. 工具:Burp Suite(主流)、手工测试、Python脚本

一、Low 级别暴力破解(无任何防护,最简单)

low.php 源码分析

$user = $_GET['username']; $pass = $_GET['password']; $query = "SELECT * FROM users WHERE user='$user' AND password='$pass'"; $db = mysqli_query($GLOBALS["___mysqli_ston"], $query); if( mysqli_num_rows($db) == 1 ){ echo "<pre>Welcome to the password protected area admin</pre>"; }else{ echo "<pre>Username and/or password incorrect.</pre>"; }

漏洞点:

  1. 直接拼接用户输入,字符型SQL注入;
  2. 无验证码、无请求频率限制、无IP锁定;
  3. 仅通过页面文字区分成功/失败。

攻击步骤(Burp Intruder 爆破)

步骤1:抓包登录请求

  1. 浏览器随便输入账号密码,点击 Login;
  2. Burp拦截请求,完整数据包:
GET /DVWA/vulnerabilities/brute/?username=test&password=123&Login=Login HTTP/1.1 Host: 127.0.0.1 Cookie: PHPSESSID=xxx; security=low

步骤2:发送到 Intruder

右键 → Send to Intruder

Payload Positions 自动标记usernamepassword两个参数。

步骤3:Payload 设置

两种爆破方案:

方案1:已知用户名 admin,只爆破密码(推荐)
  1. 清除username标记,固定值admin
  2. password加载密码字典(123456、password、admin、dvwa等弱口令);
  3. Attack type:Sniper(单字典遍历)。
方案2:同时爆破账号+密码

Attack type:Cluster bomb,分别加载用户字典、密码字典。

步骤4:启动爆破,判断成功包

爆破完成后看响应长度/页面内容:

  • 失败包:页面包含Username and/or password incorrect.
  • 成功包:页面包含Welcome to the password protected area admin

筛选长度不同的请求,得到正确密码(默认admin密码:password)。

Low 额外漏洞:结合SQL注入直接绕过登录

payload用户名输入:admin'#,密码任意

SQL拼接后:

SELECT * FROM users WHERE user='admin'#' AND password='xxx'

注释后半段密码判断,直接登录成功,无需爆破。


二、Medium 级别暴力破解(增加简单过滤+延时)

medium.php 源码防护点

$user = mysqli_real_escape_string($db, $_GET['username']); $pass = mysqli_real_escape_string($db, $_GET['password']); // 登录失败延时2秒 sleep(2);

防护:

  1. mysqli_real_escape_string转义单引号,无法SQL注入绕过登录
  2. 登录错误强制sleep(2),大幅拉长爆破时间;
  3. 无验证码、无锁定,依然可以暴力破解。

攻击流程

  1. 抓包方式和Low完全一致,不能使用注入payload;
  2. Intruder爆破不变,仅爆破速度变慢(每失败请求等待2秒);
  3. 识别成功响应依旧依靠页面Welcome关键字;
  4. 优化技巧:缩小密码字典,只使用高频弱口令,减少请求次数。

三、High 级别暴力破解(Token CSRF防护,核心难点)

high.php 源码新增防护

  1. 依旧转义字符,禁止SQL注入;
  2. 增加CSRF token(user_token),每次请求token值动态变化;
  3. 每次提交必须携带当前页面token,固定数据包直接重放会失效;
  4. 错误登录依旧sleep延时2秒。

请求新增参数:user_token=随机值

完整参数:username=xxx&password=xxx&Login=Login&user_token=xxxx

Burp自动处理Token爆破完整步骤

步骤1:抓包登录请求,发送到Intruder

三个参数:username、password、user_token,三个变量位置。

步骤2:Payload Type 设置为 Pitchfork

步骤3:配置 Payload 3(token自动获取)

  1. Payload set 3 选择:Recursive grep递归提取token;
  2. 打开 Options → Grep - Extract,添加提取规则:

正则匹配页面隐藏表单token:

user_token' value='(.*?)'

  1. 设置页面刷新请求:每次爆破前先GET登录页,抓取最新token再提交登录。

步骤4:Payload1填固定admin,Payload2加载密码字典,启动攻击

工具会自动:

  1. 访问页面获取新token;
  2. 携带新token提交账号密码;
  3. 循环爆破,识别成功页面。

手工替代方案(Python脚本自动获取token爆破)

逻辑:

  1. requests.get 访问 brute页面,正则提取user_token;
  2. 携带token、用户名、密码发送GET登录请求;
  3. 判断返回页面是否包含Welcome;
  4. 循环遍历密码字典。

四、Impossible 级别(无法爆破,防御满分,对比参考)

源码防护机制:

  1. 强密码哈希存储+加盐md5($salt . $pass)
  2. 登录失败计数器,5次错误直接锁定账号15分钟;
  3. 复杂CSRF token;
  4. 使用预处理SQL语句,杜绝注入;
  5. 无任何可利用漏洞,无法暴力破解。

五、三级等级核心对比表

等级

注入绕过

延时限制

CSRF Token

爆破难点

Low

支持单引号注入直接登录

无sleep

无,爆破速度最快

Medium

转义引号,注入失效

sleep(2)

爆破速度慢,只能纯字典跑

High

注入失效

sleep(2)

动态token

必须自动抓取token,配置复杂

Impossible

完全防护

5次锁定

高强度token

无法爆破


六、实战常见问题

  1. High级别爆破全部失败:未配置递归抓取token,旧token失效;
  2. Medium爆破速度极慢:sleep(2)强制延时,减少字典数量;
  3. Low注入payload无效:安全等级切错,当前是Medium/High;
  4. Cookie丢失导致失效:Burp开启Redirect automatically,保持PHPSESSID会话。

七、防御暴力破解方案

  1. 登录失败次数限制,短期锁定账号;
  2. 图形验证码/短信验证码;
  3. 后端加盐哈希存储密码,禁止明文;
  4. CSRF随机Token防护;
  5. 异常高频请求WAF拦截;
  6. 使用预处理SQL,防止注入绕过登录;
  7. 后台登录IP白名单。
http://www.jsqmd.com/news/1301806/

相关文章:

  • 百度网盘Mac版SVIP破解终极教程:免费解锁高速下载限制
  • 【AI减负实战指南】:20年IT老兵亲授5大高频重复场景的自动化落地路径
  • 官宣!Wayland正式支持基于IntelliJ的IDE
  • 2026年服装企业管理升级:从设计到成衣,ERP如何打通研产供销全链路?
  • 一篇让你明白整个网络架构的计算机网络入门教程。
  • Windows上直接运行安卓应用的终极指南:APK安装器完全教程
  • GDB 调试实战:从基础命令到高级汇编调试技巧
  • 如何在Linux系统上完美支持100+打印机:foo2zjs开源驱动完整指南
  • 三分钟唤醒你的智能伙伴:让小爱音箱拥有ChatGPT的灵魂
  • 终极中文POB指南:3分钟掌握PoeCharm流放之路角色构建
  • OpenClaw便携式2026,笔记本与U盘双模式使用
  • untrunc终极指南:快速修复损坏MP4视频的免费开源神器
  • 从0到月入3万:AI接单者不愿公开的定价阶梯模型,含成本锚点计算表
  • 如何在嵌入式设备上实现高性能AI推理:RKNPU2神经网络处理单元深度解析
  • 认知虫洞构造手册:基于黎曼-彭罗斯条件的对话拓扑隧道及其在创造性突破中的实证检测(手稿)
  • 如何在3分钟内免安装使用微信网页版:终极指南
  • 终极KMS激活指南:3分钟免费激活Windows和Office全系列
  • 30KG重载机器人对比:柔性力控与恒力打磨工艺,越疆行业智能升级
  • 终极QMC音频解密指南:免费快速转换QQ音乐加密文件
  • YimMenu终极指南:如何用这款GTA5防崩溃菜单保护你的游戏体验
  • Loop for macOS:5分钟掌握视觉化窗口管理终极解决方案
  • 692.前k个高频单词(堆优先队列)
  • Box64终极指南:如何在ARM64设备上流畅运行x86_64 Linux程序
  • 瑞芯微RK3588S Android12 REE 指纹代码移植(1)--Kernel移植
  • 3个理由告诉你为什么BiliBili-UWP是Windows上最优秀的B站第三方客户端
  • 7 月总结:独立开发者从 0 到 1 的完整回顾——技术、产品与市场的三角平衡
  • VOC2028 安全帽佩戴检测数据集介绍、下载及YOLO/VOC/COCO训练格式转换
  • Python+Pyecharts实现动态销售数据可视化实战
  • 治愈系生活工具的设计系统:从颜色语义到组件规范
  • 第二阶段 15 · prefix / wildcard / fuzzy 模糊匹配