文件包含漏洞

FileInclusion

漏洞产生原因: 在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。比如php中提供了:

  • include()include_once()require()require_once()
  • include和require的区别主要是:include在包含过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会知己报错并退出程序的执行。

漏洞产生条件:

  1. web 应用采用 include() 等文件包含函数,并且需要包含的文件路径是通过用户传输参
    数的方式引入;
  2. 用户能够控制包含文件的参数,被包含的文件可被当前页面访问;

漏洞危害

本地文件包含不仅能够包含web文件目录中的一些配置文件(比如Web应用、数据库配置文件、config文件),还可以查看到一些Web动态页面的源代码,为攻击者进一步发掘web应用漏洞提供条件,甚至一旦与路径遍历漏洞相结合,还可能直接攫取目标系统的用户名与密码等文件。

漏洞挖掘

无通用性方法、特定CMS,特定版本可能存在、web漏洞扫描器扫描

分类

本地包含

远程包含

需要php.ini打开allow_url_include=On

漏洞利用

参考reference1、reference2
可利用途径:

  • 上传图片:图片包含getshell
  • 读文件:读取php文件
  • 包含日志文件getshell
  • 包含/proc/self/environ/文件getshell
  • ·有phpinfo可包含临时文件
  • 包含data://或php://inout等伪协议(需要allow_url_include=On)

常见敏感文件

  1. Windows:
    • C:\boot.ini //查看系统版本
    • C:\windows\system32\inetsrv\MetaBase.xml //IIS 配置文件
    • C:\windows\repair\sam //存储 windows 系统初次安装的密码
    • C:\Program Files\mysql\my.ini //mysql 配置
    • C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
    • C:\windows\php.ini //php 配置信息
    • C:\windows\my.ini //mysql 配置文件
  2. Linux:
    • /etc/passwd
    • /usr/local/app/apache2/conf/httpd.conf //apache2 默认配置文件
    • /usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
    • /usr/local/app/php5/lib/php.ini //PHP 相关配置
    • /etc/httpd/conf/httpd.conf //apache
    • /etc/php5/apache2/php.ini //ubuntu 系统的默认路径

PHP 伪协议

  • file:// 访问本地文件系统
  • http:// 访问 HTTPs 网址
  • ftp:// 访问 ftp URL
  • php:// 访问输入输出流
  • zlib:// 压缩流
  • data:// 数据
  • ssh2:// security shell2
  • expect:// 处理交互式的流
  • glob:// 查找匹配的文件路径

漏洞防范

  1. PHP中可使用open_basedir配置限制访问限制在指定的区域
  2. 过滤.(点)/(反斜杠)(斜杠)
  3. 进制服务器远程文件包含

Reference

  1. 文件包含漏洞
  2. 文件包含小节
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值