php伪协议

1. php://input

构造场景:本地web服务器根目录下有文件phpinput_server.php,代码如下:

1 <?php
2     $a = $_GET['a'];
3     $raw_post_data = file_get_contents($a,'r');//'php://input'
4     echo $raw_post_data;
5 
6 ?>

在浏览器中按照如下方式访问:

地址栏输入的是:http://localhost/phpinput_server.php?a=php://input

post框直接输入一段数据

excute后,脚本会在页面中输出这段数据。

 总结:此种方式可以用来获取post数据,但不能获取get数据。

 

2. php://filter

构造场景:本地web服务器根目录下有文件phpfilter_server.php,代码如下:

1 <?php
2     $a = $_GET['a'];
3     $raw_post_data = file_get_contents($a,'r');
4      //'php://filter/read=convert.base64-encode/resource=test.php'
5     echo $raw_post_data;
6 ?>        

在浏览器中按照如下方式访问:

地址栏输入的是:http://localhost/phpfilter_server.php?a=php://filter/read=convert.base64-encode/resource=test.php

excute后,脚本会在页面中输出test.php文件的内容(经过base64编码后)。

 总结:此种方式在存在文件包含漏洞时可以利用,读取文件源码。

 

 

参考:

http://hi.baidu.com/casperkid/item/2baf952b13a9cd0e76272cb0

http://www.nowamagic.net/academy/detail/12220520

posted @ 2014-11-11 01:11  sky钦  阅读(683)  评论(0)    收藏  举报