分析检测
因为这是作于测试,我的php文件内容就是单纯执行phpinfo();
<?php phpinfo(); ?>
先上传一个php文件,提示不是合法类型,
然后我又尝试了在文件后缀后面跟个空格,“.”以及::$DATA,发现都不行
发现都不能对这关的检测进行绕过,我看很多博主的教程是先去看服务端的php文件,对代码进行分析从而找出对应的绕过方法,但我是喜欢自己一种一种的去摸索,知道发现一个可以绕过的方法,绕过过后再去看后台的检测机制
这关我从测试的结果分析得出,他可能是对文件后缀中的空格,“.”以及::$DATA进行了删除再去判断其文件类型。
分析绕过方法
居然他可以检测::$DATA字符,那么不妨使用双写绕过,这个方法其实是因为我之前在学xss的时候因为其中有些就可以使用双写<script>标签绕过,我就想到双写::$DATA进行绕过。
上传成功过后记得去响应源码中查看文件的路径,大家会发现服务端还对其文件名进行了一个随机命名,访问的时候出现下面这种情况是因为咱们没有去除url中的::$DATA。
咱们去除url中的::$DATA就可以访问到上传的文件,而且其中的php代码是可以被正常解析的,