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

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等对图片进行重新采样、压缩或缩放。这个过程会剥离嵌入在图片中的恶意代码,生成一个"干净"的新图片。
相关推荐
是真的小外套18 小时前
网络安全实战第6期:Hydra爆破SSH实战
安全·web安全·ssh
是真的小外套18 小时前
网络安全实战第5期:Wireshark抓明文密码
安全·web安全·wireshark
学网安的肆伍18 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
霂鳯1 天前
新手勇闯网络安全 | MySQL基础(四)
mysql·web安全·adb
自由彩虹1 天前
靶场通关16--victim1
linux·服务器·网络·安全·web安全·网络安全
HackTwoHub1 天前
双通道红队 C2,MCP 接入 AI,全自动渗透实战利器,具备自动提权、进程伪装、无文件上线能力,载荷 AES 加密
安全·web安全·网络安全·系统安全·密码学·可信计算技术·安全架构
网教盟人才服务平台2 天前
PTP 标准化渗透能力落地,规范商用安全测试全流程
大数据·安全·web安全
HackTwoHub2 天前
红队低成本 IP 轮换方案 ProxyCat升级版,自动扩容代理池、负载分摊转发,一键部署,告别高价隧道代理
网络·人工智能·网络协议·tcp/ip·安全·web安全·网络安全
一只鹿鹿鹿2 天前
医院绩效管理体系方案
大数据·运维·安全·web安全·制造
admin and root3 天前
《神农安全.AI漏洞挖掘src赏金》单独开放!
安全·web安全·网络安全·数据挖掘·渗透测试·ai安全·白帽子黑客