文件包含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

在这里插入图片描述

posted @ 2026-06-18 13:01  Doll_Marker  阅读(11)  评论(0)    收藏  举报