sqli-labs第42/43关通关:白盒定位注入点+ErrorBased+Stacked一条龙

admin 2026-01-29 10:38:19 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文解析sqli-labs第42/43关,通过白盒审计定位注入点在password参数。两关均为POST显错注入且支持堆叠查询,区别在于闭合方式。作者演示了利用updatexml获取数据及堆叠查询修改表内容的实战,强调需突破惯性思维定位注入点,并理解堆叠注入从读取到修改数据的危害跃迁。 综合评分: 89 文章分类: 渗透测试,WEB安全,代码审计,漏洞分析


cover_image

sqli-labs 第 42 / 43 关通关:白盒定位注入点 + Error Based + Stacked 一条龙

原创

武文学网安 武文学网安

武文学网安

2026年1月29日 03:19 中国香港

大家好,我是武文。 做到 sqli-labs 第 42 / 43 关时,我决定不再“猜参数、试半天”——因为这两关的价值点很明确:

  • POST 提交
  • 显错注入(Error Based)
  • 堆叠查询(Stacked Query)
  • 并且注入点并不在我直觉以为的 username,而是在 password 输入栏

因为我在username输入栏做了太多无用功,所以这一篇我直接采用白盒方式来给大家介绍:先看源码确定注入点,再回到前端按正确姿势验证与利用。

一、第 42 / 43 关整体说明

官方标题:

  • 42:POST – Error based – String – Stacked
  • 43:POST – Error based – String – Stacked (with twist)

两关核心一致: 都是 POST 注入 + 显错回显 + 支持堆叠查询。 区别点只有一个:闭合方式不同(43 比 42 多一层括号闭合)。

| 项目 | 第42关 | 第43关 | | — | — | — | | 请求方式 | POST | POST | | 页面回显 | 有报错回显 | 有报错回显 | | 注入类型 | Error-based + Stacked | Error-based + Stacked | | 注入点 | password | password | | 闭合方式 | 单引号闭合 | 单引号 + 括号闭合 |

二、白盒定位注入点:不是 username,而是 password

我直接打开第 42 / 43 关的源码(靶场允许查看),https://github.com/Audi-1/sqli-labs/blob/master/Less-42/login.php 重点关注 SQL 拼接部分。

核心现象非常清晰:

  • username 有mysqli_real_escape_string处理被过滤 / 限制 / 或者没有进入危险拼接
  • 而password没有做任何处理直接被传进了后端,真正被拼接进 SQL 的,是 password 参数

也就是说: 这两关的注入点在 password 输入框里。

这也是我一开始盲测卡住:一直拿 username 当注入点狂测,结果越测越怀疑人生。

定位完注入点后,后面所有 payload 都围绕 password输入框来构造。

三、开始实战:先做闭合测试(从最基础开始)

因为是 String 类型注入,第一步就是闭合确认。

3.1 第 42 关闭合测试

我先正常登录提交一组数据观察页面,再逐步加入特殊字符:

password 输入:


1   1′    报错

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

出现 SQL 报错(或页面异常),说明:

  • 引号进入 SQL 语句
  • 且存在注入风险

接着我用最经典的布尔验证:

password 输入:

1' and 1=1 #1' or 1=1 #   万能密码正常登录

结论: ✅ 第 42 关闭合方式为 单引号 '


3.2 第 43 关闭合测试(括号型)

第 43 关同样从单引号开始试:

password 输入:


1′


报错,但这不代表闭合一定是单引号,也可能是:

  • ' )
  • ' ))
  • 或者其他组合

为了少走弯路,我直接按“括号闭合”的思路验证:

password 输入:

1') and 1=1 #   不能登录1') or 1=1 #    正常登录

说明✅ 第 43 关闭合方式是 单引号 + 括号 ')


四、显错注入(Error Based):用 updatexml 直接拿信息

这两关标题就写了 Error based,所以我不绕弯,直接上显错函数。

4.1 第 42 关显错 payload

password 输入:


1′ and updatexml(1,concat(0x7e,database(),0x7e),1)#

![](https://mmbiz.qpic.cn/mmbiz_gif/VFf46TKXLVFtSiaYkjkC6Q9I8skHibcmIZicIfsuULYrY3TqCLxHoibGEEwWtRmyGsibrEtmDPYSrpiaMQXusuQ3cibYQ/640?wx_fmt=gif&from=appmsg#imgIndex=4)
  • 页面报错
  • 报错信息里出现:~security~

这说明:

✅ 注入成立 ✅ 显错回显可用 ✅ 我已经能稳定拿信息


4.2 第 43 关显错 payload(带括号闭合)

password 输入:


1′) and updatexml(1,concat(0x7e,database(),0x7e),1)#


同样能在页面报错中看到数据库名回显。

到这里,第 42 / 43 关的 “Error based” 部分就通了。


五、核心能力:Stacked Query(堆叠查询)真正的意义

如果只用 updatexml 拿数据库名,那这两关其实和前面的显错题没本质区别。

这两关真正新增的能力是:允许在一次请求里执行多条 SQL也就是:分号

‘; ’后面的语句也会被执行。

这意味着攻击面从“查数据”升级为“改数据”。


六、堆叠注入实战:UPDATE 修改数据 +后端MySQL 验证

因为这两关是 POST,而且页面未必给你明确提示“更新成功”, 所以我采用最稳的验证方式:

让数据库发生变化 → 后端查询MySQL数据库去确认变化是否真的发生

6.1 第 42 关 stacked update

password 输入:


1′; UPDATE users SET password=’stacked_42′ WHERE username=’admin’;

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

执行后,我打开终端 查看 users 表:

  • 如果 admin 的密码变成了 stacked_42
  • 就说明堆叠语句确实被执行了

结论: ✅ 第 42 关 stacked query 成立


6.2 第 43 关 stacked update(带括号闭合)

password 输入:


1′); UPDATE users SET password=’stacked_43′ WHERE username=’admin’;

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

同样去 终端 查看数据变化,admin的密码由stacked_42变为了stacked_43

结论: ✅ 第 43 关 stacked query 成立


七、通关总结:这两关到底在考什么?

第 42 / 43 关我认为核心就三句话:

  1. 注入点不在 username,而在 password(白盒确认是关键)
  2. 显错注入能让你“看到信息”
  3. 堆叠注入能让你“改变数据” ——这才是危险等级提升的地方

如果把能力分层:

  • Error based:我能从报错里“读”到数据
  • Stacked query:我能让数据库“执行额外语句”,甚至改表数据

这也是为什么 stacked query 在真实环境里非常致命:

它不再是“查询注入”,而是接近“数据库命令执行”。


结语

第 42 / 43 关表面看起来是POST版的40/41关卡,对我来说,其真正的价值在于:

  • 不要被惯性思维束缚行动,必须尽可能尝试尽可能多的注入点,把注入点找对(本关就是 password)
  • 然后理解 stacked query 带来的能力跃迁:从读 → 到写

免责声明:

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

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

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

本文转载自:武文学网安 武文学网安 武文学网安《sqli-labs 第 42 / 43 关通关:白盒定位注入点 + Error Based + Stacked 一条龙》

Capslock+将本增效 网络安全文章

Capslock+将本增效

文章总结: Capslock+是一款Windows开源效率工具,将闲置的CapsLock键改造为超级修饰键,通过按住触发和轻点切换的交互逻辑,实现鼠标模拟、文本
评论:0   参与:  0