php伪协议之phar

一.phar协议

用于将多个 PHP 文件、类、库、资源(如图像、样式表)等打包成一个单独的文件。这个归档文件可以像其他 PHP 文件一样被包含(include)或执行。PHAR 归档提供了一种方便的方式来分发和安装 PHP 应用程序和库,尤其是当它们包含许多文件和目录时

1.格式

将一句话木马(shell.php)压缩成压缩包形式(shell.zip),将压缩包后缀改为.jpg(shell.jpg)

phar://shell.jpg/shell.php

2.实操

点击题目链接,空白页面,查看源代码,发现include.php
php伪协议之phar_第1张图片
include.php的源代码,有一个upload.php,且告诉参数是file
php伪协议之phar_第2张图片
访问upload,是文件上传页面,上传木马文件发现不行
php伪协议之phar_第3张图片
通过php://fifter,查看upload.php和include.php的源代码,(php伪协议)

?file=php://filter/read=convert.base64-encode/resource=include.php

发现报错,分析报错原因,知道它强制加后缀.php,这样图片马就上传不了

php伪协议之phar_第4张图片

?file=php://filter/read=convert.base64-encode/resource=include

php伪协议之phar_第5张图片
base64解码php伪协议之phar_第6张图片代码分析,过滤了http|data|ftp|input|%00等字样,还强制在后缀加.php


Tips: the parameter is file! :) 


=70)
        {
            echo "

error!

"; } else { include($file.'.php'); } } ?>

同样方法得到upload.php

代码分析,只是一个白名单过滤,对文件的后缀和文件类型进行判断

file:
上传shell.jpg,这个文件是shell.php压缩后,将.zip后缀改为.jpg后缀

shell.php内容:
payload:
http://hazelshishuaige.club:8040/include.php?file=phar://upload/shell.jpg/shell

php伪协议之phar_第7张图片
蚁剑连接
php伪协议之phar_第8张图片flag在根目录下
php伪协议之phar_第9张图片

你可能感兴趣的:(web漏洞,php,开发语言,php伪协议,phar)