对CTF不是很感兴趣,但是从中一些php的安全知识还是不错的,从这个项目中找了10个案例,自己本地搭建环境尝试分析,这篇文章记录一下

extract

extract函数是把数组里面的键、值映射为变量、值。

该题条件是$shiyan==$content

$shiyan是可控的,而$content为读取一个文件名为$flag的文件内容。

尝试网上的payload:?shiyan=&flag=1

这个思路是覆盖$flag为1,file_get_contents读取1这个不存在的文件内容为空,然后满足条件,读出了flag:

我想到一个加强版:

我在条件里面加了一个 $shiyan=='mkdd',这个时候上面的方法就不可用了,因为问题在于怎么让file_get_contents读取一个文件,内容为mkdd?这时候需要用到php://input伪协议,直接把post的内容传给$content即可

strcmp

strcmp是对两个变量进行比较,完全相同才返回0,题目的意思就是你传入一个和flag完全相同的值,我就告诉你flag...这不扯淡吗

那肯定还有某些情况下也能返回0?是的,strcmp传入数组的话,会返回null , 而null==0 是true

绕过过滤的空白字符

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐