文件包含漏洞

一、文件包含介绍

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RootZY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值