目录
准备
需要自行搭建Upload-labs靶场
第六关
我们首先看一下源码,初一看感觉没什么不一样得,仔细一看第六关没有首尾去空。
首先上传php试一下,发现上传不了
在php后面加个空格呢,上传成功
第七关
首先试了一下末尾加空格,上传失败。
看源码,发现没有对末尾的点进行过滤,windows特性,会自动去后缀名末尾的“.”,那我们测试一下,成功上传。
第八关
源码
看源码发现比以前少一个::$DATA
$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
那就在名字后面加上试试
发现文件被成功的上传到服务器,且名称后缀为.php::$data
,但是由于Windows的特性在磁盘中会忽略::$data
并将文件新建。
第九关
看了一下源码,把以前的代码都补上了,分析下代码,
首尾去空,去除了
::$DATA、
转换为小写、再删去末尾的点。
这样一来我们构造文件名,使其经过过滤后得到的还是php
的文件名不就行了,所以就”1.php. .
“
点+空格+点来进行绕过(不过好像依旧只针对windows)
第十关
先看一下源码
查资料发现这里是将黑名单中的后缀进行去空处理。那我们试一试双写后缀进行绕过
$file_name = str_ireplace($deny_ext,"", $file_name);
成功绕过
安全小白,记录一下思路,大佬勿喷。也请多多提建议。