• 上传文件漏洞(上传绕过)


    0x00 漏洞概述

    任意文件上传漏洞主要是由于程序员在开发文件上传功能时,没有考虑对文件格式后缀的合法性进行校验或只考虑在应用前端(Web 浏览器端)通过 javascript 进行后缀校验,攻击者可上传一个包含恶意代码的动态脚本(如 jsp、asp、php、aspx 文件后缀)到服务器上,攻击者访问该脚本时服务器将对包含恶意代码的动态脚本解析,最终执行相应的恶意代码。该漏洞最终将可能直接影响应用系统的服务器安全,攻击者可通过所上传的脚本完全控制服务器。

    0x01测试方法

    对文件上传页面进行测试,有多种上传测试方式判断是否存在任意文件上传漏洞。

      

    方式一:直接上传

     在上传过程中,直接选择动态脚本后缀的文件,如 asp、php、jsp、aspx 等文件格式,观察是否上传成功。

    方式二:绕过JS上传

     当上传页面在前端采用 javascript 进行文件后缀限制时,可通过 HTTP 抓包工具进行改包上传,如上传  jpg  后缀,通过HTTP 抓包工具捕捉到以下请求数据包,将数据包的  filename  参数值从  oneword_pass.jpg  修改为  oneword_pass.php  并重新进行上传提交即可绕过javascript 验证。

     

    方式三:截断后缀上传

     部分上传功能在对后缀名进行验证时存在缺陷,导致在文件写入过程中产生错误,导致可通过十六进制截断符(%00)对后缀进行截断。如下图,上传处理时将对检测到%00 并对.jpg 字符串进行截断删除,最终文件名为 oneword_pass.php 导致可成功上传动态脚本到服务器上。

     方式四:绕过 Content-Type 检查上传

    部分上传页面只对文件类型进行验证,导致可通过改包的方式上传动态脚本到服务器上。如下图,通过修改 Content-Type 的参数值为 image/jpg,程序将认为本次提交的为图片格式类型,并不进行后缀验证,最终成功绕过 Content-Type 检查上传动态脚本到服务器上。

     

    0x02防护思路

    1、前端,加强文件检查过滤,相关强度可以参考DVWA等级源码。

    2、过程中,针对上传文件进一步做处理,如图片的价水印、缩略图,无异常后才保存到后台;针对文件命名做限制,须由系统生成,不允许用户自定义。

    3、后台,限制上传文件目录无法直接访问,设置该目录不解析jsp等脚本语言。

  • 相关阅读:
    WCF 第四章 绑定 在多个绑定上暴露一个服务契约
    WCF 第五章 行为 事务跨操作事务流
    WCF 第五章 导出并发布元数据(服务行为)
    WCF 第五章 行为 通过配置文件暴露一个服务行为
    WCF 第五章 不支持会话的绑定的默认并发和实例
    WCF 第五章 并发和实例(服务行为)
    WCF 第五章 行为 总结
    WCF 第四章 绑定 绑定元素
    WCF 第五章 行为 事务之选择一个事务协议OleTx 或者WSAT
    WCF 第四章 绑定 比较各种绑定的性能和可扩展性
  • 原文地址:https://www.cnblogs.com/ScriptKid-Lu/p/9684274.html
Copyright © 2020-2023  润新知