zoukankan      html  css  js  c++  java
  • 上传文件漏洞(上传绕过)

    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等脚本语言。

  • 相关阅读:
    搜索栏+collectionView实现
    iOS密码框实现(二)取消确定按钮
    MotionManager 陀螺仪实现方式
    ubuntu常用命令
    Ubuntu 启用root账户
    How to solve “sudo: /etc/sudoers.d is world writable”
    ubuntu進入dos界面的方法
    炫耀一下hadoop學習成果
    fpdf使用標楷體
    win8磁盘占用100%的12种解决办法
  • 原文地址:https://www.cnblogs.com/ScriptKid-Lu/p/9684274.html
Copyright © 2011-2022 走看看