文件包含漏洞

时间:2021-09-20
本文章向大家介绍文件包含漏洞,主要包括文件包含漏洞使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、文件包含介绍

程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某个函数的时候,直接调用此文件,无需再次编写,这种调用文件的过程通常称为包含。为了代码灵活,开发通常把被包含的文件设置为变量,来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用任意文件,造成文件包含漏洞。在PHP Web Application中较多。

原因:

1.Web应用实现了动态包含。

2.动态包含的文件路径参数,客户端可控。

危害:文件包含漏洞是非常严重的漏洞,如果存在就等于网站的防御措施全部失效。一般的大马、小马过不了安全狗,但是文件包含漏洞可以过掉安全狗。

特点:

1.无视文件扩展名读取文件。如图片.jpg,打开不是图片,二是二进制码。

2.无条件解析PHP代码。如图片.jpg中插入一句话木马info.php。

二、PHP中四个文件包含函数

include() 文件包含失败时,会产生警告,脚本会继续运行。

include_once() 与include()功能相同,文件只会被包含一次。

require() 文件包含失败时,会产生错误,直接结束脚本执行。

require_once() 与require()功能相同,文件只会被包含一次。

本质是将任意文件包含在上述函数的引用变量中。

三 、分类

1.本地文件包含:通过相对路径的方式找到文件,然后包含。读取和打开本地文件。

2.远程文件包含:通过Http、Ftp、Php伪协议(php://),可以加载远程文件。

可以通过php.ini来进行配置:

allow_url_fopen=On/Off 本地文件包含(LFI)的开关

allow_url_include=On/Off 远程文件包含(RFI)的开关

四、文件包含的利用

1.读取敏感文件。

[?path=路径] 绝对路径、相对路径..\..\..\..\..\

2.直接包含图片木马。

[?path=图片]

3.包含木马写shell。

4.访问本地文件

[?path=file://路径]

5.传输php文件

[?path=php://filter/read=convert.base64-encode/resource=文件]

然后把得到的所有字符串base64解码即可。(获取网站源代码)

6.执行php命令:

通过BP抓包

原文地址:https://www.cnblogs.com/fengyufei/p/15314229.html