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

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等对图片进行重新采样、压缩或缩放。这个过程会剥离嵌入在图片中的恶意代码,生成一个"干净"的新图片。
相关推荐
上海云盾-高防顾问3 小时前
网络安全防护发展趋势:从被动防御到主动赋能
安全·web安全
三七吃山漆7 小时前
BUUCTF-[BJDCTF2020]Mark loves cat
web安全·网络安全·buuctf
m0_738120728 小时前
网络安全编程——Python编写基于UDP的主机发现工具(解码IP header)
python·网络协议·tcp/ip·安全·web安全·udp
上海云盾商务经理杨杨8 小时前
WAF绕过技巧与防护加固:攻防实战,彻底封堵Web安全漏洞
安全·web安全
oi..8 小时前
《Web 安全入门|XSS 漏洞原理、CSP 策略与 HttpOnly 防护实践》
前端·网络·测试工具·安全·web安全·xss
一名优秀的码农9 小时前
vulhub系列-62-dcoffeaddicts(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
网安老伯11 小时前
护网行动防守实战:Web应用XSS漏洞应急处置与防护体系搭建_护网行动web应用
linux·运维·服务器·前端·web安全·网络安全·xss
网络安全许木2 天前
自学渗透测试第12天(渗透测试流程与DVWA部署)
web安全·网络安全·渗透测试
买大橘子也用券2 天前
2026红明谷
python·web安全
航Hang*2 天前
网络安全技术基础——第3章:网络攻击技术
运维·网络·笔记·安全·web安全·php