Web Security Academy 第四关:SQL 注入查询 MySQL / SQL Server 版本
发布时间:2026/8/24 12:41:54来源:尧图企业网站定制
大家好本篇是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?categoryAccessories’页面并未报错但商品信息全部没了并且展示了Accessories’存在注入点3. 正常请求包请求包内容响应状态HTTP/2 200 OK页面正常返回。4. ORDER BY 3 测试字段数操作在参数后构造语句测试字段数量plaintextcategory order by 3--页面返回Internal Server Error500 错误说明原查询字段数小于 3。5. ORDER BY 3 报错请求包请求包plaintextGET /filter?category%20order%20by%203-- HTTP/1.1响应状态HTTP/2 500 Internal Server Error确认字段数不满足 3 列。6. ORDER BY 2 测试字段数操作plaintextcategory order by 2--页面正常显示商品无报错。结论原查询一共2 个字段。7. UNION SELECT 1,2 测试回显位操作确认字段数后测试回显位置plaintextcategory-1 union select 1,2--页面成功显示数字1、2说明两个字段都可回显。8. 构造版本查询 Payload操作使用 MySQL 全局变量version查询版本plaintextcategory-1 union select version,2--页面直接回显8.0.42-0ubuntu0.20.04.1顶部显示Congratulations, you solved the lab!关卡状态变为Solved通关成功。9. 通关成功请求包请求包plaintextGET /filter?category-1%27%20union%20select%20version,2-- HTTP/2响应状态HTTP/2 200 OK页面成功返回 MySQL 完整版本。核心知识点总结注入判断单引号触发 确认字符型注入字段判断ORDER BY 2 正常、3 报错 →2 个字段MySQL 版本查询version/VERSION()UNION 注入字段数对齐、用-1清空原结果注释符--注释后续语句安全防护建议使用参数化查询 / 预编译语句限制数据库账号权限禁止读取敏感系统变量输入过滤与 WAF 防护