我们本篇文章,将要讲述pass-08,用到的是windows文件流的一个特性,这个特性,我们先去尝试一下
我们上传一句话木马,然后抓包
这个时候,我们在文件名的后面,加个::$data
,利用的就是windows的一个特性,如果说我们windows加个php这么个环境,那我们在上传文件名里面,文件名加上::$data
,这个时候,就会把::$data
之后的数据当做文件流,进行处理,而且,它不会检测后缀名,而且会保留::$data
之前的文件名,其实它的目的就是为了注入检查后缀名,所以我们就利用这个特性进行绕过
我们点go
我们用浏览器去访问一下路径,把代理关掉
我们::$data给删掉
没有报错,那这个时候,我们用蚁剑连一下,清空缓存,添加,双击
这个时候,我们就能够获得webshell,这一关利用的也是windows里面的一个特性,这个特性在Linux下面是没有的,这是windows里面特有的一个方式,我们来看一下代码
$file_name = deldot($file_name);
末尾的点,它是删不了的,因为它的类型,比如.php::$data,相当这句话,没有
$file_ext = strrchr($file_name, '.');
你获取的后缀名,相当与这个.php::$data
$file_ext = strtolower($file_ext);
把所有的内容,转换为小写
$file_ext = trim($file_ext);
首尾去空,所以最终的结果还是.php::$data
这个是我们在创建文件的时候,php,从而把它进行一个绕过
我们来看一下后台上传的一个内容
它就把文件给创建好了,用的还是windows的一个特性