Pass-09(::$DATA绕过)
Windows特性(::$DATA)
在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,(也就是说,会自动过滤掉文件的后缀名)
且保持::$DATA之前的文件名,他的目的就是不检查后缀名
例如:
"shell.php::$DATA", Windows会自动去掉末尾的::$DATA变成"shell.php"
源码展示
可以看出,没有添加对"::$DATA"的过滤
正确应该添加:
$file_ext = str_ireplace('::$DATA', '', $file_ext); //去除字符串::$DATA
绕过演示
1、上传一个shell.php文件,
2、利用Burp抓包
3、再进行修改文件后缀名。
上传文件
2.Burp抓包
修改后:
放包查询
蚁剑连接,查询,即可成功!