Abstract: 文件包含简单应用

Table of Contents

  1. 文件目录
  2. 服务器部署环境
  3. 直接包含
    1. 本地包含
    2. 远程包含
  4. 限制路径
  5. 限制后缀
    1. 本地包含
    2. 远程包含
  6. 限制路径和限制后缀结合
  7. XP 系统文件路径长度截断

文件目录

1
2
3
4
5
6
7
8
action
| action.php
| action1.php
| action2.php
| action3.php
| index.php
| news.jpg
| readme.txt

服务器部署环境

打开首页,收集信息。

直接包含

本地包含

点击 php include,进入第一关,源码已显示出来。

程序未对输入参数 action 做任何处理,修改 action=../../../../../../Windows/system.ini,观察页面变化。

可以看到已读取到 system.ini。返回首页查看图片地址,

图片马和 news.php 在同一目录下。修改 action 的值,读取图片马。

用蚁剑连接,连接成功。

远程包含

注意:需设置 php.ini 文件中 allow_url_include=On

由源码可知,未对传入参数做任何处理所以可以使用远程包含。在自己搭建的服务器上存放一个图片马,修改 action 的值。

尝试用蚁剑连接,

限制路径

打开 php include 1

可以看出来,对包含的文件做了限制路径的操作。这时远程文件包含无法使用。修改 action 的值。

用蚁剑连接,

限制后缀

打开php include 2

本地包含

注意:需要把 magic_quote_gpc=Off

burpsuite 抓包,

点击 Forward

查看本地文件,

显示结果

远程包含

蚁剑连接

限制路径和限制后缀结合

限制路径后无法使用远程包含

打开 php include 3

使用 %00 截断,

显示 news.jpg

蚁剑连接

XP 系统文件路径长度截断

action2 可以截断

action3 不能截断