SQL注入实战:ORDERBYCLAUSE-StackedInjection——sqli-labs第50/51/52/53关

admin 2026-02-04 17:50:29 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详解SQLi-Labs第50至53关,核心在于结合ORDERBY注入与堆叠查询。通过构造特定Payload在数字或字符串型注入点执行多句SQL操作,涵盖修改密码与删表等场景。文章对比了报错与盲注下的利用差异,提供了具体实例,旨在提升对堆叠注入实战技巧的理解与应用能力。 综合评分: 85 文章分类: WEB安全,渗透测试,漏洞POC


cover_image

SQL注入实战:ORDER BY CLAUSE-Stacked Injection——sqli-labs第50/51/52/53关

原创

武文学网安 武文学网安

武文学网安

2026年2月4日 02:30 中国香港

大家好,我是武文。今天继续学习Stacked Injection ORDER BY注入,挑战sqli-labs第50/51/52/53关,因为这几个关卡类型一致,放一起简短介绍。

关卡名称:

  • 第50关:GET – Error-based ORDER BY CLAUSE – Numeric – Stacked Injection
  • 第51关:GET – Error-based ORDER BY CLAUSE – String – Stacked Injection
  • 第52关:GET – Blind based – ORDER BY CLAUSE -numeric- Stacked injection
  • 第53关:GET GET – Blind based – ORDER BY CLAUSE -String- stacked injection

这四个关卡都涉及到 ORDER BY 注入与 堆叠查询(Stacked Query)相结合的技巧,核心的差异在于 数据类型 和 错误信息的获取方式,以及是否使用 盲注 来绕过直接的数据回显。


通关思路:

第一步:理解核心注入点

每个关卡的注入点都在 ORDER BY 子句中,且都会通过 错误信息 或 盲注 来反馈条件真假。根据每个关卡的特点,我们分别探讨数字型和字符串型的注入。

  1. 第50关:数字型 ORDER BY 注入,通过错误信息确认注入点。
  2. 第51关:字符串型 ORDER BY 注入,核心原理和第50关类似,但处理的数据类型不同。
  3. 第52关:数字型 ORDER BY 注入,采用 盲注 来确认真假。
  4. 第53关:字符串型 ORDER BY 注入,采用 盲注 来确认真假。

第二步:确认注入点

在两关的表单中,注入点都位于 URL 参数中(比如 sort 参数)。首先,你需要确认 sort 参数是否可控,尝试修改其值并查看页面的变化:


?sort=1?sort=2?sort=3

![](https://mmbiz.qpic.cn/mmbiz_gif/VFf46TKXLVGW2I21soqZWDvWI4ybwThSlwArxzbicmiaMv9gThTuQzF6C1TXH1kjkKbibzsfFDd8jdicvFQOMCYARQ/640?wx_fmt=gif&from=appmsg#imgIndex=0)

页面能够正常显示,并且 ORDER BY的排序方式有所改变,说明我们成功控制了注入点。

第三步:构建注入语句

一旦确认了注入点,可以开始构造 堆叠查询 语句。堆叠查询使我们可以在一次请求中执行多个 SQL 语句,从而不仅能进行排序注入,还能执行其他操作(如获取数据库信息)。

第50关:数字型 ORDER BY 堆叠注入

  1. 确认排序字段数量

    通过测试以下几个数字,直到页面显示 SQL 错误,从错误信息中我们可以得知排序字段的数量:


?sort=1?sort=2?sort=3


测试中逐步增加字段,直到页面显示 SQL 错误,从错误信息中我们可以得知查询的列数为3。

可以参照46/47关的显错注入和盲注。本文主要利用stacked injection。

  1. 构建堆叠查询

    一旦确认了字段数量,使用堆叠查询语句来进一步注入。利用 布尔盲注 可以验证注入是否成立。


?sort=1; update users set password=’stacked50′ where username=’admin’;


此语句不仅会对 ORDER BY 进行排序,还会执行 UPDATE 语句更新 admin 用户的密码为 stacked50。通过数据库查询,可以验证密码已经成功修改。

第51关:字符串型 ORDER BY 堆叠注入

与第50关类似,第51关的核心原理一样,不过这次是针对 字符串类型的 ORDER BY

  1. 确认闭合方式

    首先,检查 sort 参数的闭合方式。你可以通过以下几个查询来测试闭合方式:


?sort=1?sort=1′?sort=1″?sort=1′–+

![](https://mmbiz.qpic.cn/mmbiz_gif/VFf46TKXLVGW2I21soqZWDvWI4ybwThStTZqytWt2gCbI4nMQwSKkdEZFibUfPlqruxO2LZUePh4l0osVjLu2fg/640?wx_fmt=gif&from=appmsg#imgIndex=2)

判断是否能正常显示,确定闭合方式为单引号闭合。

显错注入和盲注可以参考46/47关的显错注入和盲注。
  1. 构造字符串型堆叠查询:字符串类型的 ORDER BY 需要通过字符串拼接来构造查询,因此我们可以通过 堆叠查询 来构造查询语句。例如:

?sort=1′; update users set password=’stacked51′ where username=’admin’;


同样,执行堆叠查询会更新 admin 用户的密码为 stacked51

第52关:数字型 ORDER BY 堆叠盲注

  1. 确认闭合方式:

    测试 sort 参数的闭合方式


?sort=1?sort=1′?sort=1″?sort=1″–+?sort=1′–+?sort=1′)–+?sort=1″)–+

![](https://mmbiz.qpic.cn/mmbiz_gif/VFf46TKXLVGW2I21soqZWDvWI4ybwThSZEicribDGLKibosiaamvdaVLs73nkQL3L6MLTDWhHiaD1gnuZkzbiacy6CbQ/640?wx_fmt=gif&from=appmsg#imgIndex=4)

可以判断出当前就是数字型,没有其他闭合方式。

显错注入和盲注可以参考46/47关的显错注入和盲注。
  1. 构造字符串型堆叠查询:字符串类型的 ORDER BY 需要通过字符串拼接来构造查询,因此我们可以通过 堆叠查询 来构造查询语句。例如:

?sort=1; update users set password=’stacked52′ where username=’admin’;


发现数据库里已经修改admin密码为stacked52,现在试一个更残暴的语句:

?sort=1;drop table users;

发现可以执行,成功删除users表。

第53关:字符串型 ORDER BY 堆叠盲注

(这里注意,前面我们删除了users表,需要点击reset数据库,不然后面一直报错)

  1. 确认闭合方式

?sort=1?sort=1′?sort=1′–+?sort=1″?sort=1″–+?sort=1′)–+?sort=1″)–+

![](https://mmbiz.qpic.cn/mmbiz_gif/VFf46TKXLVGW2I21soqZWDvWI4ybwThSuXiakxUqK5dYSTv6Zm1fHYDSdOrDNqVibicurLkpiaeuHibic0aYICWAAvIw/640?wx_fmt=gif&from=appmsg#imgIndex=7)

可以判断出当前闭合方式为单引号闭合。因页面无其他错误反馈,所以这关只能进行盲注。
  1. 构造字符串型堆叠查询:字符串类型的 ORDER BY 需要通过字符串拼接来构造查询,因此我们可以通过 堆叠查询 来构造查询语句。例如:

?sort=1′;update users set password=’stacked53′ where username=’admin’;


已经成功修改admin密码为stacked53.


总结:

这些关卡的通关技巧均基于 ORDER BY 注入与 堆叠查询 的结合,利用错误信息或盲注反馈来执行 SQL 操作。其实打了这么多关卡,会发现不同类型的SQL注入方式大致相同。当后面最后一页关卡通关后再来总结一份完整的sqli-labs通关攻略


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:武文学网安 武文学网安 武文学网安《SQL注入实战:ORDER BY CLAUSE-Stacked Injection——sqli-labs第50/51/52/53关》

网络安全月报(1月) 网络安全文章

网络安全月报(1月)

文章总结: 本报概述近期安全态势:新增漏洞5705个,建议及时修补。攻击者伪装杀毒软件攻击以色列,美军行动展示新型网络战。法国邮政遭DDoS瘫痪,欧空局服务器被
评论:0   参与:  0