任意文件包含【理解】

1 漏洞描述

程序开发人员通常会把可重复使用函数或语句写到单个文件中,形成“封装”。在使用某个功能的时候,直接调用此文件,无需再次编写,提高代码重用性,减少代码量。这种调用文件的过程通常称为包含。

2 漏洞原理

任意文件包含漏洞:file inclusion

指当服务器开启:

allow_url_fopen = On/Off # 通过远程方式打开文件 

allow_url_include = On/Off # 通过远程方式包含文件 

就可以通过 php 的某些特性函数:

include()

include_once()

require()

require_once()

去包含任意文件。此时如果对文件来源不严格过滤审查,就容易包含恶意文件。而攻击者可以通过构造这个恶意文件来达到目的。

  • 文件包含即程序通过包含函数调用本地或远程文件,以此来实现拓展功能
  • 被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞
  • 文件包含漏洞主要发生在有包含语句的环境中

3 漏洞场景

LFI:local fileinclude 本地文件包含漏洞,被包含的文件在服务器本地

?filepath=../phpinfo.php

RFI:remote file include 远程文件包含漏洞,被包含的文件在第三方服务器(如站库分离)

?filepath=http://10.9.64.180/phpinfo.jpg

4 漏洞评级

高危

5 漏洞危害

  • 配合文件上传漏洞 getshell
  • 可执行任意脚本代码
  • 可导致网站源码文件及配置文件泄露
  • 远程包含 getshell
  • 控制整个网站甚至服务器

6 漏洞验证

metinfo_V5.0.4_任意文件包含

7 漏洞利用

  • 读取敏感文件
  • 读取 PHP 文件源码
  • 执行 PHP 命令
  • 包含日志

8 防御方案

  • 尽量减少使用动态包含
  • 严格过滤被包含文件的路径
  • 将参数 allow_url_include 设置为 Off
  • 使用参数 open_basedir 限定文件访问范围

9 典型案例

2006年,PHPMyAdmin的文件包含漏洞被曝光,攻击者可以通过构造恶意的URL参数,让PHPMyAdmin包含远程服务器上的文件,从而实现远程执行任意代码的攻击。
2012年,Wordpress的文件包含漏洞被曝光,攻击者可以通过构造恶意的URL参数,让Wordpress包含远程服务器上的文件,从而实现远程执行任意代码的攻击。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值