zoukankan      html  css  js  c++  java
  • Pikachu:Unsafe file download(不安全的文件下载)

    概述:

      Unsafe file download,意为“不安全的文件下载”,文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。

      此时如果攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。
      所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!

    Unsafe file download(不安全的文件下载)

      我们进入页面,发现上面有96黄金一代的12位球员,Notice中提醒我们,点击球员名字即可下载图片:

      那我们就下载一下呗,我选择费舍尔,毕竟历史最快绝杀还是要给牌面的——其他人牌面都不少:

      观察后台可以看到,通过点击前端链接,去查找后台的对应的图片,再反馈给前端进行下载,相当于把一个文件名传到后端,后台去找这个文件,然后响应输出到前端发下他没有做任何的防护,直接将get到的字符串拼接完成下载,我们可以构造一个url下载文件,通过进入根目录来获取文件,我这里在Harkbar中构造,发现可以进行下载:

      http://192.168.11.1/pikachu-master/vul/unsafedownload/execdownload.php? filename=../../../inc/config.inc.php

      如此一来,就可以把可以把敏感文件下载在本地。我们来看一下源码(路径如下图所示):

       我们看到没有做过滤处理,那我们如何防范呢?用以下两种方法来防范:

       1.  对传入的文件名进行严格的过滤和限定

            2.  对文件下载的目录进行严格的限定

  • 相关阅读:
    HDU 5492 Find a path
    codeforce gym 100548H The Problem to Make You Happy
    Topcoder SRM 144 Lottery
    codeforce 165E Compatible Numbers
    codeforce gym 100307H Hack Protection
    区间DP总结
    UESTC 1321 柱爷的恋爱 (区间DP)
    HDU 4283 You Are the One (区间DP)
    HDU 2476 String painter (区间DP)
    UESTC 426 Food Delivery (区间DP)
  • 原文地址:https://www.cnblogs.com/FHBBS/p/12611297.html
Copyright © 2011-2022 走看看