zoukankan      html  css  js  c++  java
  • pikachu Files Inclusion(文件包含漏洞)

    第六章 Files Inclusion(文件包含漏洞)

    1.文件包含原理及本地文件包含漏洞演示

      本地:

       后台使用包含的方法对目标文件进行包含,同时包含函数包含的文件是可以同时被前端用户所控制。因为可以被前端用户控制,这个时候前端用户传进来一个其他的文件,如果包含函数的入口并没有对前端传进来的文件做任何的控制,这就证明包含函数可以把前端传过来的文件也包含掉,这样就出现了问题。比如说可以把本地的配置文件进行包含,从而就把这些文件暴露给前端。攻击者通过上传后端的固定配置文件让包含函数去执行,从而导致本地的一些配置文件意外地进行执行。

      这个包含函数不止可以包含本地的php文件,远端的php文件也可以包含。通过一个指定的url去读取远程的php文件,把它加载到本地去执行。

      本地场景演示

     

     

      我们可以看一下这个请求

       这个请求传了一个文件名到后台,这些文件都是后台自己存在的。但是文件名是前端传到后台的,意味着前端的测试人员可以去修改这个文件。

      常用测试方法就是我们把这个文件改成后台的配置文件

     

       出现了

      先把这个路径下的文件传到后台,被后台的方法处理了,然后就把对应的配置文件暴露出来了。

      查看一下后端代码

       这可以让用户去选择一个指定的文件,但是没想到用户可以改这个文件。

      这里并没有对传进来的变量进行任何操作,我们可以在传入那里设置一些东西,比方说设置只有符合指定好的文件名才可以进行传入,否则不可以。

    2.远程文件包含漏洞

     

       允许包含函数读取远程站点的代码文件,意味着攻击者可以自己搭一个站点,在上面放一个代码,这个代码就是攻击者自己控制的。再把对应的路径通过前端传到后台,后台的包含函数就会对远程的这个文件去进行加载。

      场景演示

     

     

     

       这个提交的是目标文件的路径,我们可以把这里改成一个远端的路径,让它读取远程的文件。

      恶意站点

      这个会在本地打开一个文件流,新建一个yijuhua.php的文件,把一句话木马写进去。一旦被执行,就会在本地生成一个yijuhua.php文件,里面的内容是system函数,接收远端的get请求传过来的一个参数值。

      把远端的路径粘贴过来

     

      远端服务器目前状态

      点一下提交

     

       后端服务器上出现了这个文件

     

       写入了

      远程调用(注意:我们要知道自己写的php文件在哪个目录下,跟当前的php页面在同一级目录下面)

      把后面的删掉,去访问yijuahua.php,传一个参数写一个命令

     

       出现了(通过x接口控制服务器)

      查看一下后端的代码

       对前端传过来的文件没有做任何的过滤。此时php.ini里面的设置是改过的

    3.文件包含漏洞防范措施

     

  • 相关阅读:
    宏定义函数 字符串 多行书写采用换行
    new / delete && new[] / delete[]
    删除vector中的重复元素
    AES加密算法通用版本
    字符串匹配KMP算法详解
    超外差【整理】
    LTE PDCCH 盲检测
    PDCCH学习
    PDCCH format 与传输模式之间的关系
    LTE测量事件主要有下面几种:Event A1、Event A2、Event A3、Event A4、Event A5、Event B1、Event B2
  • 原文地址:https://www.cnblogs.com/zhaihuijie/p/12650713.html
Copyright © 2011-2022 走看看