看第六关,分析源码
看第5至10行,里面的过滤没有限制大小写,所以可以尝试大小写组合绕过。比如.pHP等。尝试上传,如下图:
上传成功,脚本木马成功解析:
pass-07
看第七关,分析源码:
通过观察源码,发现没有对空格进行处理,可以直接在末尾添加空格来绕过黑名单。如下:
上传成功,成功解析。
pass-08
看第八关,分析源码:
这里的黑名单限制了所有可以解析的后缀,所以只能构造特殊后缀来绕过防护,这里去除了空格,并用strrchr函数查找指定小黑点最后一次出现,所以构造的后缀为.php. (点php点加空格),成功绕过,如下图:
上传成功,成功解析。
pass-09
看第九关,分析源码:
看第5行到第10行,源码中未过滤::$DATA,可以利用::$DATA来绕过过滤,到这里小伙伴可能就要问了,为什么::$DATA可以绕过黑名单呢?这其实是利用了windows的特性,在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名。例如:"test.php::$DATA"Windows会自动去掉末尾的::$DATA变成"test.php"。
现在抓取数据包验证。上传成功,如下图。
上传成功,成功解析。
pass-10
看第十关,分析源码
这一关和第八关类似,就比第八关多了一行,多删除了一个点,所以还是采用构造后缀的方式,这次构造的后缀为.php. .(点php点空格点)正好绕过过滤。
构造好后,上传成功
解析成功
pass-11