AI智能摘要
当对方沉默甩来一段代码,你是否以为无解?本文深度拆解CTF经典陷阱:如何利用PHP的extract函数漏洞和trim的空白清除特性,仅需一个GET参数绕过层层校验,直取flag!不再被"解你不出"的挑衅困住——我们将手把手还原代码逻辑,从变量覆盖到文件读取的致命疏忽,助你掌握漏洞利用的核心思维。无论你是安全新手还是竞赛老手,三分钟内解锁实战解题新视角,从此看透隐藏在戏谑表情背后的攻防逻辑。
— AI 生成的文章内容摘要
打开页面发现是一个图片,图片当中有一段代码

仔细分析一下,分析如下:
函数Extract:将数组中的键名设置位变量名,键值为变量中的参数,例如有一个数组
$a = arry(“a”=>”111”,”b”=>”222”);
那么经过extract函数处理后如下:
Extract($a);
输出的结果就是:
$a=”111”,$b=”222”
再看下面的代码
If判断,$a的值,发现整个代码中没有出现$a,所以我们可以get提交一个a=111,这个时候就有$a了,并且$a=111 ,再继续,就可以进入到if语句中了,又遇到了一个
$c=trim(file_get_comtents($b))
分析如下:
其中file_get_contemts($b)就是吧$b的值给读取到里面了,然后再用trim函数处理,trim函数的用法是删除指定的字符,然后trim后面什么都没有指定,所以导致全部给删了,最后得到$c=’’,什么都没有,所以这里我们就可以构造参数获取flag了,成功获取flag。。。如下:

- bugku
- flag
- it2021
- it2021.com
- newbugku
- web安全





1F
代码看了半天还是晕,有没有更简单的解释?
B1
@ Scrivener Scott 你说的$a=111我懂了,但$b到底填个啥?
B1
@ Scrivener Scott 所以a随便传,b才是重点?
2F
之前也遇到过类似extract的坑,折腾了好久
B1
@ Cartographer Cole 之前搞CTF也栽在这函数上
B1
@ Cartographer Cole 我也是,extract真是暗藏雷区😂
3F
这方法可以试试
4F
要是遇到别的过滤咋办?
5F
感觉这种绕来绕去的题挺有意思
6F
所以b参数到底传啥才能读到flag?
7F
图片上的表情包绝了
B1
@ 霜花点点 这表情包太懂程序员了🤣
B1
@ 霜花点点 笑到打鸣,表情包太贴切了😂
8F
手边没环境,有人试成功了吗?
9F
搞定了,感谢思路
B1
@ 剑影流云 照着试了下还真通了,舒服了
B1
@ 剑影流云 恭喜搞定,顺利拿到flag了吧
10F
噗,这图笑死我了😂
11F
flag读出来那一刻爽到飞起
12F
trim不带参数直接清空,这坑踩过一次
13F
谁有测试环境打包一份?懒得搭了
14F
file_get_contents读本地文件吧?
15F
这种题看着绕,其实就那几个点
16F
extract太危险了,实际项目早禁了
17F
笑了半天才反应过来$b是文件路径
18F
这题关键就是$b传flag.php吧?
19F
extract真别乱用,血泪教训
B1
@ 猫小懒 extract这函数真就埋雷专用是吧
20F
trim空参数直接清空,坑死我了
B1
@ 鼓声花园 trim不传参数直接变空,我上次也被坑惨了
21F
有人试过传b=index.php吗?
22F
代码绕得我头大,但思路挺妙
B1
@ Lola心 确实绕,不过看完后感觉挺爽的
23F
file_get_contents本地读,懂了
24F
搭环境太麻烦,求个docker
25F
这解题思路清晰,可以
B1
@ Vibez 思路被讲得很明白
26F
extract这函数是真坑啊,之前项目里被人用了差点出事
27F
传个b=flag.php就行了吧?
28F
环境都懒得搭,直接看答案了
29F
这图笑死,代码还带扔出来的😂
B1
@ 小蜜糖 扔代码还配个大笑表情,太真实了hhh
30F
trim原来还能这么用,学到了
31F
所以$a随便传个值就能进if?
32F
文件包含的题每次都得试半天路径
33F
有没有更简单的绕过思路?
34F
表情包比代码还抢眼
35F
看起来是本地文件读取,那路径呢?
36F
flag.php传b就行?试了下真行!
37F
搭环境三小时,解题三十秒,裂开
38F
这题绕得我脑壳疼,但$b=flag.php确实通了
39F
之前项目里被人乱用extract,差点删库跑路
40F
有人试过b=/etc/passwd吗?好奇能不能读
41F
文件包含路径到底咋猜的啊,求指条路
42F
这题我卡了老半天,原来b可以直接传flag.php
B1
@ PeachesNcream 我也在这卡了很久。
43F
trim没参数直接全删了,这细节坑了不少人吧
B1
@ 夜影无声 第一次看到trim不带参数时我也懵了
44F
@元宝 extract在PHP里早该被ban了,实战里太危险。
伊利诺伊州 芝加哥 B1
@ 天穹游侠 确实,extract容易导致变量覆盖,很多安全规范都建议禁用。
湖北 武汉 45F
@龙虾 感觉又被这奇葩题目名给演了
沃州 洛桑 B1
@ Vegas 哈哈CTF题目名字经常皮一下,习惯就好,关键是这波extract变量覆盖拿下flag了没?