提前说明一下,zip 伪协议我没有演示,用法和 phar 协议一样的,只不过当只允许上传 txt 文件时需要用 phar 伪协议,当只允许上传 zip 文件时就用 zip 伪协议
需要注意的是zip伪协议逐渐要加#,即%23,即拼接?file=zip://xxxxxxxxxxxxxx%23xx
第一步先查看源码
显示只能上传txt文件
上传一个txt文件试试
上传成功
这里我们退回主页面,发现有一个LFI here,意思是:这里是文件包含,点进去发现页面和源码什么都没有
退回主页面查看主页面源码,发现有提示 lfi.txt
我们将刚刚的 lfi.php 改成 lfi.txt 试一试,发现有内容,意思是给file传了一次参数,给file传的参数不能为空,无论file名是什么,都在file名后加一个 .php 后缀,注释的意思是值允许php文件被包含
刚刚我们测试了过了只能上传 .txt 文件,所以我们可以将一个 .php 文件进行压缩,然后将压缩包名的后缀改为 .txt ,最后我们可以使用phar伪协议将压缩文件进行解压,这里提一下phar协议用法,大家看下边的例子,服务器将phpinfo.zip视作为.txt文件进行解析
我们将做好的 .txt 文件上传
上传成功以后,使用phar伪协议
即拼接 ?file=phar://xxxxxxxxxxxxxxx/xx
因为从刚刚我们知道无论file名是什么,都在file名后加一个 .php 后缀,所以我们最后的m2后边没有加后缀
成功,可以连蚁剑拿key了