第一关 sj 绕过
源码如下:
lasIndexOf是返回函数最后一次出现的地方(从右到左)
substring是用来截取函数的
indexOf是返回
表示从.出现的地方开始截取并判断是否在允许的字符串内
绕过方法:
直接burp捉包修改参数
把小马php文件后缀修改成jpg,在从burp修改php
访问路径
第二关
判断文件类型是否为图片
绕过方法
通过burp捉包修改Content-Type:
上传php文件
第三关
采用黑名单限制
上传后文件保存为路径加时间加随机数加后缀
绕过方法
使用别名php3,php5,phtml进行绕过
首先打开phpstudy工具中的httpd.conf文件进行修改使他解析别名
上传php文件并修改后缀
第四关
增加了对别名的过滤
文件保存为路径加上传文件名
绕过方法
上传.htaccess文件(注: .htaccess文件生效前提条件为1.mod_rewrite模块开启。2.AllowOverride All)
第二种方法:Apache解析漏洞
在Apache 2.x中存在一个解析漏洞,如果我们将 lyshark.php 修改为 lyshark.php.shtml这样的格式,正常情况下会弹出文件下载提示框,但是由于Apache 2.x存在解析漏洞所以,会默认将其当作PHP脚本文件进行展开并执行。 Apache在解析文件时有一个原则,当碰到不认识的扩展名时,会从后向前解析,直到碰到认识的扩展名为止,如果不认识则会爆露其源代码,此时我们如果上传 lyshark.php.shtml的话,很明显.rar 他不认识,则会先前递增,会看到.php 默认就会使用.php 解析啦
第五关
绕过方法
后缀使用大小写绕过
第六关
这一关少了首位去空的代码
绕过方法
在window下1.jpg[空格] 和1.jpg.是不允许存在的,会强制删除空格和.
第七关
少了删除文件名末尾的点
绕过方法
和第六关差不多不过这次换成了点
第八关
少了去除::$data的代码
绕过方法
第九关
这里的代码逻辑是先删除末尾点,在截取点后面的字符串,将字符串转换成小写并首尾去空
绕过方法
这里我们可以使用点空格点的形式,同样利用了window下的特性,如果我们是在window下的环境那么3-9都可以利用点空格点
burp修改后缀为1.php为1.php. . 过滤后为1.php.
浏览器访问1.php.实际访问的是1.php可以直接访问1.php
第十关
代码中只是对敏感后缀进行了一次替换
绕过方法
对后缀进行双写如 pphphp