文件包含phar伪协议
phar://伪协议
这个就是php解压缩报的一个函数,不管后缀是什么,都会当做压缩包来解压
用法:(用/来分隔压缩包路径和内部文件)
?file=phar://压缩包/内部文件
phar://xxx.png/shell.php
注意: PHP>=5.3.0压缩包需要是zip协议压缩,rar不行,将木马文件压缩后,改为其他任意格式的文件都可以正常使用
步骤:写一个一句话木马shell.php,然后用zip协议解压缩为shell.zip,然后将后缀改为png等其他格式再上传,通过phar://shell.png/shell.php来读取
找个靶场练一下

这里我们直接看看他tips访问include.php

关键点看源码正则匹配到上面关键字
(preg_match(‘/http|test1|ftp|input|%00/i’, file)∣∣strstr(file) || strstr(file)∣∣strstr(file,“…”) !== FALSE || strlen($file)>=70)
其中一条都返回error
而且我们发现file参数可控但是有一点就是无论后面传参后面都会给你拼接一个.php
直接访问新资产upload.php显然想让我们先传马

思路:
已知上传后路径为upload/xxx.jpg
1.写一个一句话木马1.php
2.把一句话木马压缩成1.zip
3.把压缩包后缀改名为1.jpg发现上传成功。
再结合上面介绍的phar://伪协议进行解压木马
木马成功被解析链接放到蚁剑中成功过getshell(ps:注意因为链接后面会给你强制拼接一个.php后缀所以后面就不用加后缀了)
http://127.0.0.1/phar1/include.php?file=phar://upload/sqzr.jpg/sqzr
###注:绝对路径也行
// 目标代码
include($_GET['file']);
// 利用
?file=phar:///var/www/html/uploads/evil.gif

本文来自博客园,作者:Doll_Marker,转载请注明原文链接:https://www.cnblogs.com/dollaikun/p/20627515

浙公网安备 33010602011771号