返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Web漏洞-文件包含漏洞超详细全解(附实例)
  • 774
分享到

Web漏洞-文件包含漏洞超详细全解(附实例)

phpweb安全文件包含漏洞网络安全后端 2023-08-31 18:08:45 774人浏览 薄情痞子
摘要

目录 一、导图 二、文件包含漏洞 1.脚本代码 2.原理演示 3.漏洞成因 4.检测方法 5.类型分类 三、本地文件包含漏洞的利用 四、远程文件包含漏洞的利用 五、协议的玩法 ​六、南邮杯CTF实例 ​七、i春秋百度杯实例 八

目录

一、导图

二、文件包含漏洞

1.脚本代码

2.原理演示

3.漏洞成因

4.检测方法

5.类型分类

三、本地文件包含漏洞的利用

<无限制本地文件包含>

<有限制本地文件包含>

四、远程文件包含漏洞的利用

<无限制远程文件包含>

<有限制远程文件包含>

五、协议的玩法

<读取文件内容>

<执行代码>

<写入一句话后门木马>

​六、南邮杯CTF实例

​七、i春秋百度杯实例

八、某CMS文件包含漏洞实例


一、导图

二、文件包含漏洞

1.脚本代码

        文件包含各个脚本代码。

ASP,ASPX,jsP,PHP<%@ include file="head.jsp" %>

2.原理演示

        (1)创建一个名为include.php的php文件,文件内的代码如下图所示。

        (2)创建一个名为1.txt的文件,文件内的内容如下图所示。

        (3)直接访问include.php文件,添加filename的参数值为1.txt。可以看到网站成功执行了文件1.txt内的php代码。

        (4)但是如果我们直接访问1.txt文件,网站就只会将其当作一串文本进行输入。而当我们利用了文件包含漏洞进行访问时,网站就会将其当作代码进行执行。

        总结:将指定文件内的内容以网站脚本代码类型进行执行。如:如果网站是php的,就当作php代码进行执行;如果网站是jsp的,就当作jsp代码进行执行;

3.漏洞成因

        (1)可空变量:$filename。

        (2)漏洞函数:include()。

4.检测方法

        (1)白盒检测:代码审计。

        (2)黑盒检测:采用漏洞扫描工具,或者搜素公开漏洞,或者查看网址后面的参数,是否接收的是文件。

5.类型分类

        (1)本地包含:只包含本地的文件。

        (2)远程包含:包含互联网可以访问到的文件,危害更大。

        (3)无限制和有限制:两种包含类型都存在无限制和有限制的两种情况,无限制就是没有限制直接拿来用就可以,有限制是可能会存在一些干扰,需要用到一些特殊的方法进行绕过。

三、本地文件包含漏洞的利用

<无限制本地文件包含>

当我们要进行跨目录的文件包含时,就需要用到“../”符号来向上一级进行跳转了。

比如我们要对下图路径下的www.txt进行文件包含。

我们需要将参数的值设为如下图所示的样式。

<有限制本地文件包含>

这里的代码比上面无限制的代码多了“.html”。

当我们此时再对1.txt文件进行文件包含的时候,就相当于包含了1.txt.html。

那么面对这种情况我们该怎么办呢?下面介绍几种绕过的方法。

第一种:%00截断:此方法要求php版本<5.3.4。

        只需在文件末尾添加“%00”来将后面的“.html”进行截断。

        可以看到下图进行%00截断后成功将文件中的代码进行了执行。 

第二种:长度截断windows,点号需要长于250;linux,点号需要长于4096。

        这种方法类似与waf绕过过程中的垃圾数据填充的方法。

        利用垃圾数据进行填充,达到对应服务器系统文件命名的最大长度,从而将“.html”挤出,让其无法添加。

        只需在文件末尾添加类似“/./././././././.·····”、“..........·····”等的垃圾数据来将后面的“.html”挤出。

        可以看到下图进行长度截断后成功将文件中的代码进行了执行。 

四、远程文件包含漏洞的利用

        如果代码里面有限制只能包含本地文件的话,就不会造成远程文件包含漏洞。

        如果代码里面没有限制,并且搭建平台上的设置里也没有设置不允许包含远程远程文件的话,就可能造成远程包含文件漏洞。

        在php里就有这样一个开关——allow_url_include。可以通过phpinfo()来查看到。

         如果这个开关是开启状态,就允许地址的远程请求。

<无限制远程文件包含>

首先演示无限制的远程文件包含。

访问如下图所示的url可以看到这个文件内包含这样一串内容。

访问这个远程的文件,可以看到网站对远程文件内的内容进行了执行。

我们将远程文件内的代码修改为一个后门代码。

再次进行访问,可以看到前面的“ni shi gej ib!”成功被执行了,而后面的后门代码却看不到,这是正常现象,此时的后门代码其实已经被执行了,执行效果就是空白的而已。 

使用工具“菜刀”连接后门代码。

打开工具后将地址以及密码进行输入并修改脚本类型为php,然后点击添加。

可以看到成功连接上了后门文件。

<有限制远程文件包含>

这里的代码比上面无限制的代码多了“.html”。

当我们此时再对远程文件进行文件包含的时候,就失败了。

 3.那么面对这种情况我们该怎么办呢?下面介绍几种绕过的方法。

第一种:末尾加%20

 5. 第二种:末尾加%23

 6. 第三种:末尾加?

五、协议的玩法

        优秀文章:https://www.cnblogs.com/endust/p/11804767.html

<读取文件内容>

在参数后输入下面的内容来对1.txt文件进行读取。

读取到的内容是经过base64加密过的(防止乱码),经过解密后即可得到文件内容本来的样子。 

<执行代码>

在参数后输入下面的内容,同时在post部分写入要执行的代码。

<写入一句话后门木马>

在参数后输入下面的内容,同时在post部分写入要执行的代码。

查看网站目录,可以看到“shell.php”后门代码被成功写入了。

六、南邮杯CTF实例

        地址:asdf

打开网站。

点击表述文字。

首先判断其可能存在文件包含漏洞,因为最后参数部分是“file=show.php”,很明显大概率是文件参数。 

因为这里展示的是show.php文件,因此我们想到直接去访问show.php文件,可以看到当我们直接访问show.php时,网站返回的也是同样的内容。

 5.因此我们可以判断出show.php的内容就是text123,放在参数的后面无非就是将其进行包含之后再执行输出,到这里我们就不难判断出这里考的明显就是文件包含漏洞了。

我们首先来判断它的操作系统,将php改为phP然后访问,可以看到网页返回错误,因此判断其是linux操作系统

 7.因此我们在这里执行linux下的ls命令,可以看到网页返回了下面的内容。

我们换一条命令执行,网页依然返回同样的内容,说明网站对此存在拦截。

 9.这个方法不可行,因此我们想到协议的玩法,想到下面的方法,首先尝试读取index.php,发现读取成功了。

将读取到的内容进行解码。

将解码到的文件放入一个文本文档里进行查看,因为在上面的软件里查看格式不是很清楚。

成功获取到了flag值。

七、i春秋百度杯实例

打开靶场可以看到下面的内容。

阅读页面内给出的代码可以知道它的意思为:如果接收到了path变量,就用include将接收到的值进行包含,否则就执行下面的phpinfo.php。

进行验证一下,发现我们分析的没有问题。

我们首先来包含index.php文件,可以看到成功进行了读取。

 5.判断其操作系统——>linux系统。

采用linux的命令来读取目录。

 7.因为后面的两个文件我们已经读取过了,所以我们来读取第一个文件来查看它的内容。

 8.发现什么也没读取到。

查看网页的源代码,可以看到flag在这里。 

八、某CMS文件包含漏洞实例

打开网站可以看到下面的页面。

 2.那么我们是如何发现这个网站的漏洞的呢?

首先我们知道它是ekucms了,因此我们可以先直接到网上搜索这个cms的漏洞,有我们就直接拿来利用,没有我们就将原码下载下来自己进行分析。 

可以看到确实是存在漏洞的。

找到一篇文章,可以得知它的思路是: 因为这个cms不存在文件上传,所以只能访问网站内的固有文件。但是因为这个cms存在本地文件包含漏洞,所以我们可以将一句话木马写到网站的日志里,然后利用本地文件包含漏洞包含这个日志文件,然后再利用菜刀等工具进行连接即可。

将文章内的url进行复制,然后放到我们的浏览器内修改后进行访问 。

可以看到网页返回了错误信息,但是此时url内容已经被写入到了网站的日志里。 

        解释:为什么这个后门代码代码的两侧不用加"",因为在进行文件包含的时候,回根据网站的脚本类型来执行文件内的内容,而这里网站的脚本类型本身就是php,所以不加""同样也会按照php代码进行执行。

8.该日志是以时间日期命名的,首先访问下面的url来触发后门代码。

 8.添加参数来进行测试,可以看到成功将参数代码进行了执行。

 9.到这里我们基本就可以执行任意的代码了,也就成功拿下了网站的权限。

来源地址:https://blog.csdn.net/weixin_62808713/article/details/129909977

--结束END--

本文标题: Web漏洞-文件包含漏洞超详细全解(附实例)

本文链接: https://lsjlt.com/news/386527.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Web漏洞-文件包含漏洞超详细全解(附实例)
    目录 一、导图 二、文件包含漏洞 1.脚本代码 2.原理演示 3.漏洞成因 4.检测方法 5.类型分类 三、本地文件包含漏洞的利用 四、远程文件包含漏洞的利用 五、协议的玩法 ​六、南邮杯CTF实例 ​七、i春秋百度杯实例 八...
    99+
    2023-08-31
    php web安全 文件包含漏洞 网络安全 后端
  • 第31天:WEB漏洞~文件操作之文件包含漏洞全解
    目录 1. 文件包含漏洞1.1. 原理、检测、类型、修复1.2. 无限制&有限制的包含1.2.1 本地包含1.2.2 远程包含 1.3. 协议流php://php://inputphp:...
    99+
    2023-10-06
    前端 php 安全
  • 文件包含漏洞全面详解
    文件包含漏洞总结 一、什么是文件包含漏洞二、本地文件包含漏洞(LFI)三、LFI漏洞利用技巧1.配合文件上传使用2.包含Apache日志文件3.包含SESSION文件4.包含临时文件 四、...
    99+
    2023-08-31
    php web安全 开发语言
  • 文件包含漏洞——实例
    一、文件包含漏洞利用之本地包含配合文件上传包含图片马 原理: 文件上传漏洞在绕过内容检测的时候,会制作图片马上传,但是图片马在上传之后,又不能解析。如果网站同时存在文件包含漏洞,利用文件包含无视后缀名,只要被包含的文件内容符合PHP语法规范...
    99+
    2023-09-24
    安全 php 开发语言
  • 文件包含漏洞详解
    文件包含漏洞详解 1.文件包含漏洞介绍1.1.文件包含漏洞解释1.2.文件包含漏洞原理1.3.文件包含的函数1.3.1.常见的文件包含函数1.3.2.PHP函数区别: 1.4.文件包含漏...
    99+
    2023-09-16
    web安全 网络安全 系统安全 http
  • 文件包含漏洞
    目录 🌻一、理论🍎1.什么是文件包含漏洞?🍎2.文件包含漏洞原因🍎3.文件包含函数🍎4.文件包含漏洞的分类&#x...
    99+
    2023-08-31
    web安全 php 文件包含漏洞
  • WEB渗透之文件包含漏洞
    1.文件包含 1.1原理: 服务器执行的php文件中可能包含木马文件或者恶意代码 1.2漏洞产生原因 web采用include()等文件包含函数通过动态变量的方式引入需要包含的文件 静态包含使用include指令,动态包含使用inclu...
    99+
    2023-09-12
    安全 web安全
  • 【文件包含漏洞-03】文件包含漏洞的利用及如何利用本地文件包含漏洞GetShell
    文件包含漏洞的利用 读取敏感文件 我们可以利用文件包含漏洞读取任意文件,读取文件的时候有利用条件 目标主机文件存在(目标文件的路径、绝对路径、相对路径) 具有文件可读权限 提交参数http://localhost/include/...
    99+
    2023-09-05
    php 安全 Powered by 金山文档
  • 文件包含漏洞总结
    文件包含漏洞总结 CTF中文件包含漏洞0x01 什么是文件包含漏洞0X02 文件包含漏洞的环境要求0X03 常见文件包含函数0X04 PHP伪协议1、PHP:...
    99+
    2023-09-29
    php 文件包含漏洞
  • DVWA之文件包含漏洞
    文件包含漏洞原理 1、什么是文件包含 程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。 2、文件包含漏洞 程序开发人员一般希望代码更灵活,所以将被包含...
    99+
    2023-09-09
    php 安全 网络
  • 文件包含漏洞_练习
    CTFHup_练习 第一关_elval执行 发现源代码里面有一句话木马我们可以复制,地址到中国蚂🗡,然后把cmd填上  发现连接成功 第二个_文件包含 我们查看源代码发现里面有一个连接点开  点开之后发现有一个文件在里面就...
    99+
    2023-09-14
    开发语言 网络安全 php 前端
  • ctf include(文件包含漏洞)
    首先看到题目有个关键字include,我们就应该能够猜到这题的主要考点是文件包含 进入靶场 一进去,有个tips让我们点击,那我们点击进去瞅瞅。 果然不出所料,url上面显眼的‘file=’就是我...
    99+
    2023-10-21
    php 开发语言 网络安全
  • 【网络安全】文件包含漏洞解析
    博主昵称:跳楼梯企鹅 博主主页面链接:博主主页传送门 博主专栏页面连接:专栏传送门--网路安全技术 创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。 博主座右铭:发...
    99+
    2023-09-07
    web安全 安全
  • Pikachu靶场之文件包含漏洞详解
    Pikachu靶场之文件包含漏洞详解 前言文件包含漏洞简述1.漏洞描述2.漏洞原因3.漏洞危害4.如何防御 第一关 File Inclusion(local)1.尝试读取"隐藏"文件2.读...
    99+
    2023-10-01
    安全 web安全 php
  • 文件包含漏洞相关协议详解
    今天继续给大家介绍渗透测试相关知识,本文主要内容是文件包含漏洞相关协议详解。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁...
    99+
    2023-09-10
    web安全 文件包含 协议 渗透测试 信息安全
  • ctf攻防渗透-文件包含-文件包含漏洞详解
    文件包含概念 程序开发人员会把重复使用的函数、变量、类等数据写到单个文件中,需要使用到里面的数据时直接调用此文件,而无需再次编写,这种文件调用的过程称为文件包含。 文件包含相关函数 require( ...
    99+
    2023-09-18
    安全 web安全
  • dedecms远程文件包含漏洞
    利用前提存在重装漏洞 在自己网站准备一个远程文件 http://www.d.com/install/index.php.bakstep=11&insLockfile=a&s_lang=a&inst...
    99+
    2023-09-07
    php 安全 web安全
  • ThinkPHP文件包含漏洞分析
    出品|长白山攻防实验室(ID:A_Tree) 0x00 声明 以下内容,来自长白山攻防实验室的A_Tree作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作...
    99+
    2023-09-08
    安全 php web安全
  • PHP文件包含哪些漏洞
    这篇文章主要介绍了PHP文件包含哪些漏洞的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP文件包含哪些漏洞文章都会有所收获,下面我们一起来看看吧。漏洞描述文件包含漏洞的产生原因是在通过PHP的函数引入文件时,...
    99+
    2023-06-30
  • 【网络安全】文件包含漏洞总结
    目录: 介绍文件包含漏洞分类 LFIRFIPHP 的文件包含函数漏洞示例代码利用任意文件读取 使用 PHP 封装协议 php://filterphp://inputRFI getshellLFI+文件上传 getshellL...
    99+
    2023-09-02
    安全 web安全 经验分享 网络安全 漏洞复现
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作