1. DVWA Medium级别安全漏洞审计实战解析
作为Web安全领域的入门级靶场,DVWA(Damn Vulnerable Web Application)提供了从低到高不同安全等级的漏洞环境。在完成Low级别的漏洞学习后,Medium级别会引入更多安全防护措施,但往往存在防护不彻底的问题。本文将深入分析DVWA Medium级别中17个安全漏洞的代码实现与绕过技巧。
提示:本文所有实验均在本地授权环境中进行,严禁对非授权系统进行安全测试
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. SQL注入漏洞深度剖析
2.1 普通SQL注入漏洞分析
Medium级别的SQL注入与Low级别的主要区别在于增加了mysqli_real_escape_string()函数对输入进行转义处理。但审计代码发现关键问题:
php复制$id = mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $id);
$query = "SELECT first_name, last_name FROM users WHERE user_id = $id;";
漏洞成因:
- 转义函数仅处理了字符串类型的恶意输入
- 数字型注入不需要单引号包裹,转义完全失效
- 可直接构造
1 OR 1=1等Payload实现注入
绕过技巧:
- 保持数字型注入,无需使用单引号
- 使用算术表达式如
1+1替代直接值 - 注释符绕过后续条件:
1 /*comment*/ --
2.2 盲注漏洞分析
盲注模块同样存在数字型注入问题,但增加了结果判断逻辑:
php复制$exists = (mysqli_num_rows($result) > 0);
if ($exists) {
$html .= '<pre>User ID exists in the database.</pre>';
} else {
$html .= '<pre>User ID is MISSING from the database.</pre>';
}
盲注技巧:
- 使用布尔盲注技术,通过页面返回判断条件真假
- 时间盲注Payload:
1 AND IF(1=1,SLEEP(5),0)
