首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一个文件上传的功能,可能出现哪些类型的漏洞?

一个文件上传的功能,可能出现哪些类型的漏洞?

作者头像
信安之路
发布2025-10-21 13:27:18
发布2025-10-21 13:27:18
1350
举报
文章被收录于专栏:信安之路信安之路

今天我们来总结一下假如遇到一个文件上传的功能,那么可能会存在哪些类型的漏洞呢?一个文件上传功能,实现的原理可能是这样的:

1、大多是情况下是上传图片文件,也有少部分情况是上传 pdf、doc 等文档以及压缩包

2、上传文件后,会保存在目标系统硬盘上,也可能是 OSS 平台

3、上传的文件名可能会存入数据库,方便后续使用

4、上传的文件名及文件内容会被展示给自己或者他人查看

通过功能原理,其涉及多个部分,比如系统硬盘、展示、存取数据库等,知道了原理,那么分析漏洞类型就容易多了。

1、写入硬盘时

在文件写入硬盘时,可能存在文件名后缀可控,直接上传 webshell 的情况,如果上传后的目录为网站系统本身,且该目录可执行,那么就可能被直接 getshell,也就是我们常说的文件上传漏洞。

可能存在文件上传漏洞的条件:

1、文件后缀可控,上传动态脚本

2、上传目标必须是网站系统,且上传后的目录可以执行动态脚本

3、如果上传后的路径为 oss 系统,且存在相对应的子域名,那么可以上传 html 文件,造成存储型 XSS 漏洞

安全的做法:上传文件的文件名和后缀不被用户控制,采用随机文件名+固定后缀的方式命名,且上传后的目标路径最好是 oss 系统,且不用子域名解析。

2、存取数据库时

只要与数据库交互,那么就有可能存在 SQL 注入漏洞,所以上传的文件名,禁止包含特殊字符,大概率可以预防 SQL 注入漏洞。

image-20250910165406794
image-20250910165406794

3、文件或者文件名展示时

只要涉及到显示,那么就有可能存在 XSS 漏洞,如果文件名可控,未做 XSS 相关防护,那么就可以用作 XSS 攻击,如果可以上传 html 类文件,那么攻击者就可以控制上传文件的内容,来做到类似存储型 XSS 的效果。

img
img

还有一种是构造恶意 PDF 文件,展示时触发 XSS:

image-20250910170011978
image-20250910170011978

4、其他情况

如果上传后的文件被其他处理,比如解压缩,那么可以构造恶意压缩包,利用解压软件的问题,触发漏洞利用,还比如图片经过 ImageMagick 处理,利用 ImageMagick 的漏洞也是可以的,再比如视频文件被 FFmpeg 处理,利用 FFmpeg 的历史漏洞,也可能存在安全风险。

总之在测试时,一个小小的功能,在了解其实现原理的情况下,根据所涉及的组件和流程,一一测试,不放过任何细节,那么功夫一定不负有心人,加油!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、写入硬盘时
  • 2、存取数据库时
  • 3、文件或者文件名展示时
  • 4、其他情况
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档