Web Security Academy 第四关:SQL 注入查询 MySQL / SQL Server 版本

大家好,本篇是 Web Security Academy 第四关 超详细图文教程,每一步操作、页面响应、请求包都和你的截图 1:1 对应,跟着做直接通关。

另外,我之前已经发布过 SQL Server数据库基础、注入语法、版本查询 的文章,对 SQL Server不熟悉的朋友可以先去我主页看那篇补课,本文专注靶场实战。


关卡信息

  • 关卡名称:SQL injection attack, querying the database type and version on MySQL and Microsoft
  • 注入点:商品分类 category 参数
  • 数据库:MySQL
  • 目标:获取版本字符串 8.0.42-0ubuntu0.20.04.1
  • 难度:入门

1. 关卡初始页面

打开靶场进入第四关首页。页面顶部提示:Make the database retrieve the string: '8.0.42-0ubuntu0.20.04.1'

页面下方是商品列表,分类包括:All、Accessories、Clothing, shoes and accessories、Corporate gifts、Food & Drink、Gifts。

确认注入点在商品分类筛选的 category 参数。


2. 正常访问分类页面

直接点击分类 Accessories,页面正常加载,无报错。

将URL:/filter?category=Accessories'

页面并未报错但商品信息全部没了,并且展示了Accessories'

存在注入点,


3. 正常请求包

请求包内容:

响应状态:HTTP/2 200 OK,页面正常返回。


4. ORDER BY 3 测试字段数

操作:在参数后构造语句测试字段数量

plaintext

复制代码
category=' order by 3--

页面返回:Internal Server Error(500 错误)

说明原查询字段数 小于 3


5. ORDER BY 3 报错请求包

请求包:

plaintext

复制代码
GET /filter?category='%20order%20by%203-- HTTP/1.1

响应状态:HTTP/2 500 Internal Server Error确认字段数不满足 3 列。


6. ORDER BY 2 测试字段数

操作:

plaintext

复制代码
category=' order by 2--

页面正常显示商品,无报错。

结论:原查询一共 2 个字段


7. UNION SELECT 1,2 测试回显位

操作:确认字段数后,测试回显位置

plaintext

复制代码
category=-1' union select 1,2--

页面成功显示数字 1、2,说明两个字段都可回显。


8. 构造版本查询 Payload

操作:使用 MySQL 全局变量 @@version 查询版本

plaintext

复制代码
category=-1' union select @@version,2--

页面直接回显:8.0.42-0ubuntu0.20.04.1

顶部显示:Congratulations, you solved the lab! 关卡状态变为 Solved,通关成功。


9. 通关成功请求包

请求包:

plaintext

复制代码
GET /filter?category=-1%27%20union%20select%20@@version,2-- HTTP/2

响应状态:HTTP/2 200 OK页面成功返回 MySQL 完整版本。


核心知识点总结

  1. 注入判断:单引号触发 ,确认字符型注入
  2. 字段判断:ORDER BY 2 正常、3 报错 → 2 个字段
  3. MySQL 版本查询:@@version / VERSION()
  4. UNION 注入:字段数对齐、用 -1' 清空原结果
  5. 注释符:-- 注释后续语句

安全防护建议

  1. 使用参数化查询 / 预编译语句
  2. 限制数据库账号权限,禁止读取敏感系统变量
  3. 输入过滤与 WAF 防护
相关推荐
Htr_5 小时前
Cortex 使用指南:开源 API 知识层
前端·数据库·人工智能·重构·计算机外设
Roadinforest6 小时前
NoSQL的最终一致性:真的可靠吗?
数据库·nosql
敲代码的嘎仔6 小时前
用 Redis 合并写 + DelayQueue 延迟检测,把视频播放进度写库频率降到 1/60
java·开发语言·数据库·redis·缓存·音视频·高并发
承渊政道7 小时前
PostgreSQL 鸿蒙 PC 适配全记录:从原生交叉编译到 HNP 数据库服务闭环
数据库·postgresql·harmonyos·鸿蒙系统·pc端
风哥2号7 小时前
数据库教程FGMT26‑2-GoldenGate数据库容灾迁移02(OGG同构异构、数据库迁移、数据同步、容灾复制)
数据库·goldengate
牛油果子哥q7 小时前
向量数据库原理与工程选型:FAISS深度剖析、Milvus基础、检索优化、分片与持久化落地
数据库·milvus·faiss
海浪仙人掌7 小时前
流动比率有哪些分析陷阱?流动比率怎么避开这些陷阱?
大数据·数据库·人工智能
兀兀术8 小时前
windows下忘记pgsql密码
sql·pgsql
庆登登登8 小时前
MySQL Workbench 鸿蒙 PC 适配全记录:从 GTK_X11 桌面程序到 ArkUI 原生数据库工作台
数据库·mysql·harmonyos
2601_963282778 小时前
政企无线对讲系统落地:从设备采购到长期运维的完整工程实践
大数据·运维·数据库