php审计之phar://协议
之前在网上看到这么个协议,感觉记忆有点模糊,故复现一下。
- php.ini中的phar.readonly设置为Off(默认为On)
一般来说此协议可适用于文件包含
这个协议就是用来读取压缩包中的文件内容的。
我们这里用最最经典的pikachu靶场来做实验。
看代码,直接包含了get方法接收到的filename参数,我们这里去给include里面加一个压缩包,压缩包里面弄一个shell。
现在我们去包含这个1.zip
可以看到直接包含也只能看到里面的文件名字
但是我们使用,phar://
协议去包含的话(中途改了下代码)
1 | phar://C:\code\phpstudy_pro\WWW\vul\fileinclude\include\12.zip\12.php |
而且后缀也不是非要zip,换成png也可以,这样就可以绕过了。
生成
同时也可以用php脚本打包一个phar文件,下面是脚本
1 |
|
phpcode就是包含的文件内容。
ps:我用php7.3.4版本复现了一晚上都没成功,真要自杀了。换成5.6.9就可以了。