zoukankan      html  css  js  c++  java
  • 03服务器 文件上传漏洞

    文件上传漏洞,指用户上传了一个可执行脚本, 并通过此脚本获得了服务端命令的能力。

    需要满足条件:

    1. 上传的文件能够被 Web 容器解释执行,所以文件上传后所在的目录是 Web 容器所覆盖到的路径
    2. 用户能够通过Web访问到这个文件, 如果文件上传了,但是用户无法通过Web访问,或者无法使得Web容器解释这个脚本, 那么也不是漏洞.
    3. 如果用户上传的文件被安全检查,格式化,图片压缩等改变了内容,则可能导致攻击不成功.

    所以, validation 还是很重要. 但有时检查文件的格式可能有些问题, 比如如果用户上传 xxx.php[].jpg, 表面上看是一个图片, 但是很多语言把[] 对应十六进制的 0x00(截断字符)截断了,所以, 从服务器语言比如 PHP,C 等就解释为上传的文件是 xxx.php. (这个validation 是在前端做的, 判断文件的格式是否为.jpg)

    如何防御文件上传漏洞

    1. 文件上传的目录设置为不可执行, 很多大型网站,将上传文件独立存储,作为静态文件处理
    2. 判断文件类型,推荐白名单方式. 可以结合 MIME Type
    3. 使用随机数改写文件名和文件路径, 上传后要被攻击者执行, 攻击者需要找到文件. 如果用户上传, 但是不能访问到文件.
    4. 单独设置文件服务器或域名
  • 相关阅读:
    css整理-06 表和列表
    css整理-05 边框,背景和浮动,定位
    css整理-04 基本视觉格式化
    css整理-03 文本
    css整理-02 颜色和字体
    no-jquery 05 Utilities
    no-jquery 04 Events
    使用nodejs写个服务器小程序
    快速判断数组中每个对象同一属性值是否相同
    飞快验证对象是否为空
  • 原文地址:https://www.cnblogs.com/moveofgod/p/12360636.html
Copyright © 2011-2022 走看看