当前位置: 首页 > news >正文

DVWA SQL 注入(Medium/High 级别)过滤绕过与防范实验(超详细图文版)

一、实验目的

  1. 掌握SQL注入漏洞在Medium、High级别下的防护机制与绕过思路
  2. 学会通过抓包修改参数进行注入测试
  3. 完成注入检测、字段数判断、查库、查表、查账号密码
  4. 对比不同安全等级的防护缺陷,理解安全加固的正确方式

二、实验原理

1.Medium级原理

  • 防护:前端下拉框限制输入+单引号转义过滤
  • 漏洞类型:数字型注入
  • 绕过:抓包修改POST参数,数字注入不需要单引号,可直接绕过过滤

2.High级原理

  • 防护:页面跳转+SQL语句增加LIMIT1
  • 漏洞类型:数字型注入
  • 绕过:使用#注释掉LIMIT1,注入逻辑与Medium一致。

三、实验前置准备

登录DVWA系统。在DVWA Security当中选择medium选项,并提交。

然后选择SQL Injection,在该界面中,只能选择UserID,因此需要通过BurpSuite或者firebug之类工具绕过限制,在此使用BurpSuite绕过这个限制。

启动BurpSuite,使用自带的浏览器重新访问dvwa,并登录,将将DVWA Security等级设置为medium,然后选择SQLInjection。

四、实验步骤及结果

步骤一:Medium级别实验。

在DVWA中尝试提交一个ID,在BurpSuite的repeater中可查看捕获到的提交信息。选择Proxy中的HTTP history,选择一个提交的请求,右键,在弹出的菜单中选择“send to repeater”,使用BurpSuite的repeater模块可以重复发送数据,查看返回数据。打开BurpSuite中的repeater模块:

1. 修改参数值为1' or 1=1 # ,并重新发送

在BurpSuite中的repeater模块中修改发送的数据,将参数值修改为1' or 1=1 #

选择“send”,重新发送,保存截图并分析结果。

分析结果:

当前的 Payload 1' or 1=1 # 在Medium级别报错,核心原因是:

  1. Medium级别是数字型注入,不是字符型:后端 SQL 语句是 SELECT * FROM users WHERE user_id = [id],user_id 是数字类型,不需要单引号闭合;
  2. 单引号被转义:Medium 级别用 addslashes() 函数,把输入的 ' 转成了 \',导致 SQL 语法直接报错;
  3. Payload格式错误:你在 Burp 里写的 id=1' or 1=1 #&Submit=Submit 中,且单引号完全多余。

2. 继续将value值修改为1 or 1=1 # 进行测试。

保存截图并分析结果。

分析结果:

注入原理:Medium 级别为数字型注入,后端 SQL 为SELECT * FROM users WHERE user_id = $id,or 1=1使查询条件恒为真,#注释后续语句,成功绕过限制

3. 注入测试:

分别查询所有数据库名、dvwa中的数据表名、users表中的字段名。

列出查看所有数据库名的payload

执行结果截图:

查看dvwa中的数据表名的payload

执行结果截图:

查看users表中的字段名的payload:

执行结果截图:

步骤五、High级别实验。

在High级别的SQL Injection中输入ID后会页面跳转,打开新窗口,但仍传递id参数

注入测试:查询所有数据库名、dvwa中的数据表名

  1. 查询所有数据库名

保存截图并分析结果。

结果分析

  • 在弹窗 session-input.php 中提交 Payload:

plaintext

1' union select 1,group_concat(schema_name) from information_schema.schemata#

  • 主页面成功显示:

plaintext

information_schema,dvwa,mysql,performance_schema,sys

  • 分析结论

High 级别虽然采用弹窗输入、并限制 LIMIT 1,但未对union语句进行过滤。通过单引号闭合 + # 注释即可绕过限制,成功获取所有数据库名,证明 High 级别防护依然不足。

2. dvwa中的数据表名

保存截图并分析结果。

结果分析

  • 在弹窗输入 Payload:

1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa'#

  • 主页面显示:

guestbook,users

  • 分析结论

High 级别对字符串输入无有效检测,未使用预编译或严格过滤。攻击者仍可通过 union 联合查询,直接读取库下表结构。注入成功,说明 High 级别防护仍然无法彻底阻止 SQL 注入。

五、实验总结

High级别注入点依然存在于 id参数,通过弹窗入口提交 Payload即可成功执行 union查询。无论是查数据库名还是查表名,都被成功获取,证明 High级别只是改变交互方式,并未真正加固 SQL注入防护。正确防御必须使用参数化查询(预编译语句)。

http://www.jsqmd.com/news/581680/

相关文章:

  • 父子进程变量地址相同值却不同?图解Linux写时拷贝与虚拟内存机制
  • 基于Matlab的蔡氏混沌电路系统分析
  • 乌鲁木齐家装设计工作室全案设计价格多少,哪家施工标准规范? - 工业设备
  • 告别玄学调试!用ESP32-C3的GPIO输出驱动继电器,实测控制家电的完整流程与注意事项
  • 智慧电力守护者:局放仪在多场景下的行业标准与实践
  • 从安装到实战:基于快马AI构建具备完整功能的openclaw爬虫应用
  • 破解Kafka Connect运维难题:AKHQ连接器管理的实战解决方案
  • Quartus II 多版本共存时USB-Blaster识别故障排查指南
  • 预训练模型资源整合:从下载到部署的全流程指南
  • 3步掌握番茄小说离线阅读:从搜索到有声书的完整解决方案
  • 达梦数据库-汉字转拼音首字母函数优化与性能分析
  • Graphormer模型架构深度解析:Positional Encoding如何编码分子图拓扑结构?
  • Phi-3-mini-4k-instruct-gguf效果展示:10个真实提示词生成对比(含正式改写/三句总结)
  • 3倍性能突破:ComfyUI-Manager下载优化极致指南
  • YOLOv13新手入门指南:从环境激活到首次推理全流程
  • 2026年4月最新真力时官方售后服务中心网点考察报告(新址) - 亨得利官方服务中心
  • 外卖CPS分销系统高并发场景下,Java 后端接口性能优化实战技巧
  • 3小时构建你的神经网络可视化实验室:从零理解CNN内部工作原理
  • OpenClaw备份方案:Phi-3-vision-128k-instruct实现敏感图片自动打码归档
  • 查询文件hash值windows-linux
  • 办公设计服务推荐,格微建设的靠谱程度咋样? - mypinpai
  • Win11 WSL 下玩转 CentOS 7:两种安装方法全攻略(附常见问题解决)
  • Scratch3.0作品想发给朋友玩?手把手教你一键打包成手机能打开的H5网页
  • 探讨乌鲁木齐性价比高的装修设计机构,如何选购 - myqiye
  • 解锁Mac网络新姿势:HoRNDIS驱动让Android USB共享一键直达
  • AI辅助开发新思路:让快马优化你的蓝桥杯单片机‘智能风扇’代码设计
  • OBS多平台推流插件完整指南:5分钟实现高效同步直播分发
  • 2026年全国防火电缆桥架/热浸锌电缆桥架公司优选 适配消防与高腐蚀场景 - 深度智识库
  • Qwen2.5-14B-Instruct开源模型:像素剧本圣殿支持剧本合规性自检
  • 湖南大米品牌哪家值得合作? - 中媒介