Kali渗透测试之DVWA系列9——File Inclusion(文件包含)

目录

一、文件包含

二、实验环境

三、实验步骤

Windows

        安全等级:LOW

        安全等级:Medium

        安全等级:High

        安全等级:Impossible

Linux

安全等级:LOW

安全等级:Medium

安全等级:High


一、文件包含

1、文件包含原理

文件包含:开发人员将相同的函数写入单独的文件中,需要用某个函数时直接调用此文件,无需再次编写,这种文件调用的过程称为文件包含。

漏洞成因:开发人员为了使代码更灵活,会将被包含的文件设置为变量,用来进行动态调用,从而导致客户端可以恶意调用一个恶意文件,造成文件包含漏洞。

2、文件包含函数

  • Require():找不到被包含文件,报错,并且停止运行脚本。
  • Include():找不到被包含文件,报错,但会继续运行脚本。
  • Require_once():与require类似,区别在于,当重复调用同一文件时,程序只调用一次。
  • Include_once():与include类似,区别在于,当重复调用同一文件时,程序只调用一次。

3、文件包含的特征

?page=

?file=

?home=

4、文件包含分类

  • 本地文件包含
  • 远程文件包含(即加载远程文件,在php.ini中开启allow_url_includeallow_url_fopen选项。开启后可以直接执行任意代码。)

5、目录遍历与文件包含的区别

目录遍历是可以读取web目录以外的其他目录,根源在于对路径访问权限设置不严格,针对于本系统;

文件包含是利用函数来包含web目录以外的文件,分为本地包含和远程包含;

6、利用

  1. 读取敏感文件
  2. 远程包含shell
  3. 图片上传并包含图片shenll
  4. 使用伪协议
  5. 包含日志文件GetShell
  6. 截断包含

7、修复方案

  1. 禁止远程文件包含 allow_url_include=off
  2. 配置 open_basedir=指定目录,限制访问区域。
  3. 过滤../等特殊符号
  4. 修改Apache日志文件的存放地址
  5. 开启魔术引号 magic_quotes_qpc=on
  6. 尽量不要使用动态变量调用文件,直接写要包含的文件。

8、常见敏感信息路径

Windows系统

  • C:\boot.ini                             //查看系统版本
  • C:\windows\system32\inetsrv\MetaBase.xml    //IIS配置文件
  • C:\windows\repair\sam         //存储Windows系统初次安装的密码
  • C:\ProgramFiles\mysql\my.ini           //MySQL配置 C:\ProgramFiles\mysql\data\mysql\user.MYD   //MySQL root密码
  • C:\windows\php.ini                         //php配置信息

Linux系统

  • /etc/passwd                               //账户信息
  • /etc/shadow                           //账户密码文件
  • /usr/local/app/apache2/conf/httpd.conf  //apache2默认配置文件
  • /usr/local/app/apache2/conf/extra/httpd-vhost.conf   //虚拟网站配置
  • /usr/local/app/php5/lib/php.ini             //php相关配置
  • /etc/httpd/conf/httpd.conf                //apache配置文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值