在DVWA(Damn Vulnerable Web Application)靶场中,从Low到Impossible安全级别,SQL注入的防护措施逐级增强,其对应的绕过技巧和攻击思路也发生着显著变化。了解这些差异,能帮助我们更深刻地理解漏洞防御的演进逻辑。
🎯 各级别核心差异与绕过技巧对比
下表清晰地展示了四个安全级别在代码防护、漏洞本质及绕过技巧上的核心区别。
安全级别 | 代码防护关键点 | 漏洞本质与攻击思路 | 核心绕过技巧 |
|---|---|---|---|
Low | 无任何防护。用户输入直接拼接进SQL语句。 | 字符型注入。SQL语句如 | 使用 |
Medium | 1. 使用 | 数字型注入。SQL语句变为 | 1.攻击思路转变:因参数为数字型,直接注入 |
High | 1. 注入点与结果回显分属不同页面,增加自动化攻击难度。 | 虽回归字符型注入,但 | 核心技巧是注释符绕过。使用 |
Impossible | 1.使用PDO预处理语句,从根本上将代码与数据分离,有效防御SQL注入。 | 漏洞被根除。预处理语句使所有基于恶意拼接的注入技巧全部失效。 | 几乎无法绕过。此级别的设计旨在展示彻底的防御方案,而非提供绕过技巧。 |
💡 拓展知识:DNSLog注入
在无回显的“盲注”场景下,传统注入方式效率极低。此时可考虑一种高级技巧——DNSLog注入。它的原理是,利用数据库函数(如load_file())发起一个带有子查询结果的DNS查询,如果该域名指向攻击者控制的DNS日志平台,那么查询记录(即被窃取的数据)就会被记录下来。
这种方法能有效绕过无回显和WAF(Web应用防火墙) 的检测。当然,它的实施有一定前提条件,例如需要数据库具有相关权限且运行在Windows系统上