zoukankan      html  css  js  c++  java
  • 文件上传

      “文件上传”功能一方面带来了良好的体验,另一方面也带来的“安全问题”。目前文件上传漏洞已经成为web安全中经常利用到的一种漏洞形式,对于缺少安全防护的web应用,攻击者可以利用提供的文件上传功能将恶意代码植入到服务器中,之后再通过url去访问以执行代码达到攻击的目的。

    文件上传漏洞产生的原因:

      1、开源编辅器的上传漏洞
      2、服务器配置不当
      3、本地文件上传限制被绕过
      4、过滤不严或被绕过
      5、文件解析漏洞导致文件执行
      6、文件路径截断
    文件上传漏洞利用的条件:
      1、恶意文件可以成功上传
      2、恶意文件上传后的路径
      3、恶意文件可被访问或执行

    一、任意文件上传

    这个直接上传一个文件就是了,这里上传的文件名为1.txt, 这里可以看到上传成功,说明后台没有做任何限制。

     二、JS限制文件上传

    当我们再次上传1.txt时提示错误

     

     提示中说我们不能上传txt文件类型,那么我们试着上传一下它允许的jpg格式的文件(这里是我们用图片格式伪装的木马文件)。

     

     利用burpsuite抓包

    将jpg修改成php格式,提示上传成功。(说明成功绕过限制)

    三、 MIME限制文件上传

     

    我们上传一个php格式的木马文件点击上传显示上传失败,那么我们利用burpsuite抓包看看。

     实际上MIME验证就是检测Content-type字段值的,直接更改上传数据包中的Content-type即可绕过。

    在前面js上传文件中也可以看到此处的内容为图片格式:image/jpeg,将此内容修改为image/jpeg即可。

     可以看到木马文件成功绕过限制上传成功!

    四、扩展名限制文件上传

    先了解下服务端扩展名验证绕过方法:

    1、找黑名单扩展名的漏网之鱼 - 比如上面就漏掉了 asa 和 cer 之类

    2、可能存在大小写绕过漏洞 - 比如 aSp 和 pHp 之类

    3、特别文件名构造 - 比如发送的 http 包里把文件名改成 help.asp. 或 help.asp_(下划线为空格),这种命名方式在 windows 系统里是不被允许的,所以需要在 burp 之类里进行修改, 然后绕过验证后,会被 windows 系统自动去掉后面的点和空格。

    4、IIS 或 nginx 文件名解析漏洞,比如 help.asp;.jpg 或 http://www.xx.com/help.jpg/2.php,这里注意网上所谓的 nginx 文件名解析漏洞实际上是 php-fpm 文件名解析漏洞

    5、0x00 截断绕过 - 这个是基于一个组合逻辑漏洞造成的

    6、双扩展名解析绕过攻击(1) - 基于 web 服务的解析逻辑,比如上传x.php.rar等文件

    7、双扩展名解析绕过攻击(2) - 基于 web 服务的解析方式

    那么知道了这些绕过方法,现在我们现在开始上传木马文件

    我们同样上传个php木马文件4.php可以看到显示,上传失败!

     那么我们抓包看一下,发现Content-type字段的值跟前面的一样,那么我们还是修改回来查看上传结果。

     看到前面的绕过方法,修改以下后缀名为.php3显示木马文件上传成功!

     修改后缀名为.php.上传成功!

     大小写混合绕过,修改后缀名为.pHp上传成功!

    五、内容限制文件上传

    可以通过自己写正则匹配,判断文件头内容是否符合要求,这里举几个常见的文件头对应关系:
    (1)_JPEG;_JPE;.JPG,”JPGGraphic File”
    (2).gif,”GIF 89a”
    (3).zip,”Zip Compressed”
    (4).doc;.xls;.xlt;ppt;.apr;”MS Compound Document vl or Lotus Approach APRfile”

    这里试了以上四种就只有GIF 89a可以绕过限制。

  • 相关阅读:
    自动封箱和拆箱
    关于Java的一道内存的题目
    volatile关键字
    阶乘尾零
    Java之final的解析
    从1到n整数中1出现的次数
    最小安装雷达数量
    二叉树重建
    最短路径—Dijkstra算法
    PAT A1063——set的常见用法详解
  • 原文地址:https://www.cnblogs.com/xixi3/p/12401282.html
Copyright © 2011-2022 走看看