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。。。如下:


北京市 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
文件包含路径到底咋猜的啊,求指条路