纵深防御——文件上传漏洞

1.核心思想

  • 前端检测:主要用于提升用户体验,快速给出反馈,减少无效请求对服务器的压力。绝对不可作为安全依赖,因为可以轻易被绕过。

  • 后端检测:这是真正的安全防线。所有文件上传的合法性、安全性校验都必须在服务器端进行。

2.前端检测方案

2.1 文件扩展名检测

  • 原理 :检查用户选择文件的扩展名(如 .jpg, .png, .php)。

  • 绕过方式 :使用Burp Suite、Postman等工具截断HTTP请求,修改filename后缀后发送(比如修改图片文件的后缀为php)。

2.2 MIME类型检测

  • 原理 :检查浏览器提供的文件MIME类型(如 image/jpeg, text/php)。

  • 绕过方式 :使用代理工具直接修改请求头中的Content-Type字段。

2.3 文件大小检测

  • 原理:防止用户上传过大的文件,影响服务器性能和存储。此检查在后端也必须进行,因为前端可绕过。

总之,前端检测非常脆弱,攻击者只需拦截HTTP请求并修改其内容即可轻松绕过。

3.后端检测方案

3.1 白名单文件扩展名检测

  • 原理 :这是最有效的检测方式,只允许明确安全的扩展名,拒绝其他所有类型。绝对不要使用黑名单(如禁止php, asp, jsp),因为总有漏网之鱼(如.phtml, .phps, .php5等)。

3.2 MIME类型检测

  • 原理 :检查HTTP请求头中的Content-Type。但此值也可被伪造,需与其他检测结合。

3.3 文件内容检测

  • 原理:检查文件的魔数(Magic Number),即文件头的特定字节,这是文件类型的真实标识,不受文件名和MIME类型欺骗的影响。但是也会被伪装,需与其他检测结合。

3.4 文件重命名

  • 原理:切断用户控制的文件名与服务器最终存储的文件名之间的关联,使攻击者无法预测或直接访问他上传的恶意文件。

3.5 存储路径安全

  • 原理:将上传文件的最终存储目录硬编码在程序中,不与用户输入拼接;或者确保该目录不在Web根目录下;或者没有执行脚本的权限。

3.6 文件大小限制

  • 原理:限制上传文件的体积,防止DoS攻击,避免磁盘被填满。

3.7 图像文件二次渲染/压缩

  • 原理:针对图片上传,使用GD库或ImageMagick等对图片进行重新采样、压缩或缩放。这个过程会剥离嵌入在图片中的恶意代码,生成一个"干净"的新图片。
相关推荐
上海云盾-小余8 小时前
恶意爬虫精准拦截:网站流量净化与资源守护方案
网络·爬虫·web安全
small_white_robot9 小时前
(Win)文件上传数据流绕过-面试常考
网络·安全·web安全·网络安全
Ha_To9 小时前
2026.5.20 资产信息收集工具ENscan的配置与使用
安全·web安全
一拳一个娘娘腔10 小时前
【SRC漏洞挖掘系列】第04期:文件上传与解析——把图片变成“特洛伊木马”
安全·web安全
探索者0110 小时前
SQL注入深度解析笔记:从DNSlog外带到高级绕过技术
web安全·sql注入
宋浮檀s11 小时前
DVWA通关教程1
网络·安全·web安全
绝知此事14 小时前
【计算机网络系列 3/3】网络安全与性能优化:HTTPS、WebSocket、负载均衡实战
计算机网络·web安全·性能优化
ze^015 小时前
Day03 Web应用&OSS存储&负载均衡&CDN加速&反向代理&WAF防护&部署影响
web安全·网络安全·架构·安全架构
路baby1 天前
RCE漏洞的原理详细讲解并基于pikachu靶场的实战演戏
安全·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析·rce
xiaoyaohou111 天前
【Web安全】SRC平台深度解析:从CNVD到企业SRC的漏洞挖掘指南
网络·安全·web安全