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.文件包含漏洞防范措施

     

  • 相关阅读:
    如何在java类中读取Properties配置文件
    常用网址 转
    我的读书计划
    制作一个半透明遮罩层的库——TipView
    RxJava 中的 subscribeOn 和 observeOn 的区别
    一个操作SQLite数据库的例子
    Java ThreadLocal
    3. 请求与响应
    Java的Volatile关键字
    排序
  • 原文地址:https://www.cnblogs.com/zhaihuijie/p/12650713.html
Copyright © 2011-2022 走看看