DVWA brute force(暴力破解)low
·
DVWA(Damn Vulnerable Web Application)是一个专门设计用于Web渗透测试学习和练习的开源靶场平台。它故意包含了多种常见的Web安全漏洞,供安全研究人员、渗透测试人员和开发者在合法环境中学习和测试攻击技术。
目录
一、brute force (暴力破解)
low 级别
源码审计:
if( isset( $_GET[ 'Login' ] ) ) {
// Get username
$user = $_GET[ 'username' ];
==直接获取用户输入,无任何过滤==
// Get password
$pass = $_GET[ 'password' ];
$pass = md5( $pass ); ==仅做MD5哈希,无盐值==
// Check the database 直接拼接sql语句,存在sql注入漏洞
$query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
$result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
if( $result && mysqli_num_rows( $result ) == 1 ) {
// Get users details
$row = mysqli_fetch_assoc( $result );
$avatar = $row["avatar"];
// Login successful
echo "<p>Welcome to the password protected area {$user}</p>";
echo "<img src=\"{$avatar}\" />";
}
else {
// Login failed 登陆失败,无延迟,无锁定
echo "<pre><br />Username and/or password incorrect.</pre>";
}
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
?
攻击方法一:Burp Suite暴力破解(标准方法)
在Burpsuite自带浏览器上打开DVWA靶场,使用burp suite进行爆破
首先打开拦截,输入用户名和任意密码,点击login,burp suite 会抓到请求包

注意到是get请求,我们来简单了解一下post 请求和 get请求 的区别
| 特性 | GET请求 | POST请求 |
|---|---|---|
| 设计目的 | 获取/查询资源 | 提交/修改资源 |
| 参数位置 | URL查询字符串(?key=value) | HTTP请求体(Body) |
| 可见性 | 参数暴露在地址栏 | 参数不在URL中显示 |
敏感数据传输如果用GET请求易被泄露
![]()
参数以键值对的形式附加在url后

将抓取到的数据包发送给攻击模块intruder:

intruder 模块 (暴力破解核心)
作用:自动化执行重复性攻击,如暴力破解、模糊测试
攻击位置(Positions)配置
| 设置项 | 功能 | DVWA配置 |
|---|---|---|
| Add § | 标记爆破参数 | 标记username和password |
| Clear § | 清除所有标记 | 先清除默认标记 |
| Auto § | 自动标记所有参数 | 不建议使用(需精确控制) |
攻击模式(Attack Type)
| 模式 | 工作原理 | 适用场景 |
|---|---|---|
| Sniper | 单参数,逐位置替换 | 单点测试 |
| Battering ram | 多参数,相同Payload同时替换 | 同值多字段 |
| Pitchfork | 多参数,一一对应(行号匹配) | 已知配对 |
| Cluster bomb ⭐ | 多参数,交叉组合(笛卡尔积) | 全组合爆破 |
添加参数

此处Attack type 选择 Cluster bomb(集束炸弹)- 用于同时爆破两个参数
加载预下载的字典
开始攻击
结果分析:
观察 Length 列,找到与其他响应长度不同的条目
正确凭证:admin / password
攻击方法二:SQL注入万能密码(绕过验证)
由于Low级别存在SQL注入漏洞,可直接绕过登录
在用户名框输入:
admin' or '1'='1
密码任意
原理分析:
拼接后的SQL语句变为:
SELECT * FROM `users` WHERE user = 'admin' or '1'='1' AND password = 'xxx';
由于 '1'='1' 恒为真,且MySQL中 OR 优先级低于 AND,实际执行逻辑为:
user = 'admin' OR ('1'='1' AND password = 'xxx')

完毕。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)