武汉茑萝吧 关注:8贴子:1,253
  • 4回复贴,共1

武汉茑萝:目录遍历漏洞

只看楼主收藏回复

一. 漏洞概述
在web功能设计中,很多时候我们将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“../”这样的手段让后台打开或者执行一些其他的文件。 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞。所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!
那我们这里可能会有疑问,目录遍历和任意文件下载以及文件包含漏洞有身区别了,其实区别不大。目录遍历和文件包含漏洞都可以使用相同的函数如require去引用文件。文件下载使用的函数和他们不一样如先用fopen()函数打开文件,再使用fread()读取文件。文件下载是会将文件先下载下来,而不会像目录遍历和文件包含一样直接就会在屏幕中显示内容,表现方式不一样而已。而文件包含最重要的特点就是能以二进制的方式打开图片,所以我们看引用的图片能不能以二进制的方式打开,能的话就是文件包含。这三个漏洞都需要以 ../ 路径遍历的方式去读取文件


1楼2022-10-08 10:33回复
    二. 目录遍历案例
    以pikachu为例点击链接,我们发现直接默认传入了一个文件,那我们是不是可以尝试读取别的文件了


    2楼2022-10-08 10:35
    回复
      我们先来看看主要的源代码,这里以动态的方式引入文件,然后包含了一个当前目录下soup文件夹内的文件,并没有做任何的过滤。其实这里也是文件包含,使用了文件包含函数require


      3楼2022-10-08 10:35
      回复
        所以我们可以通过../回溯上级目录的方式进行文件的读取


        4楼2022-10-08 10:36
        回复
          三. 漏洞修复
          1. 过滤(../)使用户在url中不能回溯上级目录
          2. 配置不能访问WEB根目录之外的项目


          5楼2022-10-08 10:36
          回复