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

DVWA靶场通关指南之爆破(Brute Force)篇-中难度(Medium)

一、Brute Force 简介

在 DVWA 中,Brute Force 模块主要用于演示暴力破解的过程。暴力破解是通过尝试所有可能的密码组合来获取正确密码的一种攻击方式。

二、复现过程

1.原理
中难度增加了一定的限制,比如在一定时间内多次尝试错误密码后会进行短暂的封禁。

<?php// 判断是否通过GET方式提交了登录请求(点击登录按钮触发)if(isset($_GET['Login'])){// 获取前端输入的用户名$user=$_GET['username'];// 对用户名进行SQL特殊字符转义,防御SQL注入漏洞$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))?"":""));// 获取前端输入的密码$pass=$_GET['password'];// 对密码进行SQL特殊字符转义,防御SQL注入漏洞$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))?"":""));// 将密码进行MD5哈希处理$pass=md5($pass);// 拼接查询SQL,验证用户名和密码是否匹配$query="SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";// 执行SQL语句$result=mysqli_query($GLOBALS["___mysqli_ston"],$query)ordie('<pre>'.((is_object($GLOBALS["___mysqli_ston"]))?mysqli_error($GLOBALS["___mysqli_ston"]):(($___mysqli_res=mysqli_connect_error())?$___mysqli_res:false)).'</pre>');// 判断是否查询到1条有效用户记录(登录成功)if($result&&mysqli_num_rows($result)==1){// 获取用户信息$row=mysqli_fetch_assoc($result);$avatar=$row["avatar"];// 登录成功,输出欢迎信息和头像echo"<p>Welcome to the password protected area {$user}</p>";echo"<img src=\"{$avatar}\" />";}else{// ==================== 暴力破解防护核心代码 ====================// 登录失败时,强制延迟2秒再响应sleep(2);// 极大降低暴力破解速度,防御字典爆破、密码喷洒// =============================================================// 输出登录失败提示echo"<pre><br />Username and/or password incorrect.</pre>";}// 关闭数据库连接((is_null($___mysqli_res=mysqli_close($GLOBALS["___mysqli_ston"])))?false:$___mysqli_res);}?>

2.步骤
打开 DVWA 的 Brute Force 模块,进入中难度级别。

打开Burp suite工具,进行抓包

在Brute Force 任意输入账号密码非正确(admin/123456)

成功抓到请求包

右击转发到Intruder模块

重复low等级操作

由于Medium 增加 sleep(2)限制,区别是每一次登录失败后会延时2s,在资源池进行配置
并发请求数:设置为 1,即单线程串行发送请求。这是延时注入的关键配置,确保每次仅一个请求在处理,响应时间不会被并发请求干扰。
请求间隔:设置为 3000ms(固定延迟),即每次请求之间等待 3 秒。该设置可降低请求频率。

进行运行,获得正确账号密码admin/password

申明:
本博客所分享的内容仅用于网络安全技术的探讨与交流,严禁将其用于任何违法途径。
所有涉及的渗透测试行为都必须事先获得合法授权,若有违反,产生的一切后果均由使用者自行承担,与本账号及作者毫无关联。请务必时刻牢记遵守法律法规。

http://www.jsqmd.com/news/780401/

相关文章:

  • relic.skill:基于四维架构与本地化AI的数字记忆保存实践
  • Gemini31Pro接入企业知识库实践
  • c#插入排序
  • 美国出行距离数据集分析报告-2019年国家级人口流动与出行行为统计数据
  • 自建Signal服务器:Signal-Bastion部署与私有安全通信实践
  • AI与数据库协同工作负载编排技术解析
  • Godot游戏集成Nakama服务器:开源后端引擎与实时对战开发指南
  • GPT-5.5代码能力突破:88.7%意味着什么?
  • 基于Scallop框架的智能对话机器人:神经符号AI的工程实践
  • 什么是数据接口
  • C++编写的项目案例有哪些?
  • ARM MPAMv2架构解析:硬件隔离与虚拟化扩展
  • 设备声振温一体化监测:24小时智能值守,告别隐患停机
  • 3D数字孪生项目 LCP 优化指南
  • 从JY901S数据到实际应用:STM32CubeMX HAL实现姿态解算与OLED显示(MPU6050升级指南)
  • 低轨卫星网络中的Web服务韧性优化与辐射感知路由技术
  • 基于微信小程序的小说阅读系统(30265)
  • 从NXP高管变动看科技公司销售与市场职能的合分之道
  • 组件与供应商管理(CSM)如何优化产品开发
  • 如何在多个异步请求中判断“至少一个有数据”或“全部为空”
  • Python新手入门:从Hello-Python项目到高效学习路径
  • 2026年4月市场可靠的实验室污水处理设备优质厂家推荐,实验室污水处理设备,实验室污水处理设备批发厂家找哪家 - 品牌推荐师
  • 基于LangChain与RAG架构构建私有知识库问答系统实践指南
  • openclaw 在windows+WSL2+docker部署基础版
  • 某白山小程序限制PC端调试
  • 基于Git与自动化脚本构建个人AI研究对话备份系统
  • 长白山小程序sign算法分析
  • TDAD:AI编程代理的回归测试优化方案
  • CasaOS应用商店仓库:从Docker Compose到一键部署的完整指南
  • 【ROS2实战笔记-15】ros2bag 的深度应用:从数据回放到系统级离线分析