文章总结: 本文记录了一次授权黑盒安全测试中从文件上传入口突破到微服务数据泄露的完整攻击链。测试发现前端文件类型限制可绕过,后端LibreOffice旧版本存在文件解析漏洞可导致命令执行。通过获取应用服务器权限,进一步泄露SpringBoot配置文件中的数据库和Redis凭据。利用Redis中暴露的管理员会话和JWT密钥,伪造Token实现后台权限扩大,最终可批量导出全量业务数据。文章强调现代企业安全短板在于组件间的接缝处,安全防护需从点思维升级为链思维。 综合评分: 90 文章分类: 渗透测试,漏洞分析,红队,内网渗透,安全工具
记一次文件上传漏洞引发的业务系统失陷:从Web入口突破到微服务数据泄露
AlbertJay AlbertJay
只会看监控的实习生
2026年8月12日 16:30 广东
在小说阅读器读本章
去阅读
文件上传功能,几乎是每一套企业业务系统的”标配”——头像上传、附件管理、资料中心、合同归档……它太常见了,常见到很多团队在开发时只关注”能不能传上去”,而忽略了”传上去之后会发生什么”。
这篇文章记录了一次授权黑盒安全测试中,从一个普通的文件上传入口出发,通过前端绕过、服务端文件解析漏洞利用、Spring Boot配置文件泄露、Redis缓存数据窃取,最终实现后台权限扩大并获取到全量业务数据的完整过程。整条攻击链由多个环节串联,每个环节单独来看都不是什么”高危漏洞”,但当它们像齿轮一样逐个咬合时,就构成了一条从公网入口直达企业核心数据的完整攻击路径。
测试过程中最深的感受是:现代企业的安全短板,往往不在某一个单独的漏洞上,而在不同组件、不同层级之间那些无人看守的”接缝”处。 文件上传只是一扇小门,但门后面连着的,是整个业务系统的心脏。
0x01 项目背景
随着企业业务快速发展,大量系统采用Spring Boot、Vue、MySQL、Redis等技术栈构建。文件上传、附件管理、资料中心等功能成为业务系统的常见模块,同时也成为攻击者重点关注的入口。
本次测试目标为某企业互联网业务系统,测试方式为黑盒安全测试,模拟真实攻击者视角,不提供任何内部信息。
系统架构如下:
Internet → Nginx → Web Application → 文件服务 / 用户服务 → MySQL / Redis
这是一个典型的前后端分离 + 微服务架构,Nginx做反向代理,后端由多个Spring Boot微服务组成,数据层使用MySQL做持久化存储、Redis做缓存和会话管理。
0x02 外部资产分析:发现文件管理入口
拿到授权范围后,按惯例开始资产梳理——子域名枚举、端口扫描、目录fuzz。
在对核心业务域名做子域名枚举时,一个命名非常直白的子域名出现在了结果中:
upload.xxx.com
直接在浏览器中访问,渲染出了一个简洁的文件管理中心页面:
文件中心
上传文件
附件管理
页面看起来中规中矩——一个标准的企业文件上传服务。但经验告诉,文件上传功能是Web安全中最高频的攻击入口之一,因为它天然涉及文件类型判断、存储路径控制和后台解析流程三个安全关键点。
更重要的是,上传功能通常会和后端的文件处理服务交互——图片压缩、文档转换、缩略图生成等。这些”转换服务”的组件版本和处理逻辑,往往才是真正的突破口。
直觉告诉,这里值得深挖。
通过Burp Suite抓包分析上传请求:
0x03 文件上传功能分析
前端限制测试
先做一个最简单的测试——在页面上传一个 .txt 文件:
选择文件:test.txt → 点击上传
页面弹出提示:”不支持的文件格式,请上传 jpg、png、pdf、doc、xls 格式的文件“
前端做了文件类型白名单校验。但前端校验从来不是真正的防线——打开Burp Suite拦截请求,将文件后缀改回 .txt 后放行:
POST /api/file/upload HTTP/1.1
Host: upload.xxx.com
Content-Type: multipart/form-data; boundary=—-WebKitFormBoundary
——WebKitFormBoundary
Content-Disposition: form-data; name=”file”; filename=”test.txt”
Content-Type: text/plain
Hello World
——WebKitFormBoundary–
服务端返回:
{
“code”: 200,
“message”: “上传成功”,
“data”: {
“fileId”: “f_20260315_001”,
“fileName”: “test.txt”,
“fileUrl”: “/files/2026/03/15/f_20260315_001.txt”
}
}
服务端没有拒绝 .txt 文件。 后端的校验逻辑主要依赖请求中的 Content-Type 字段和文件名后缀——只要在Burp Suite中修改这两个字段,就可以上传任意类型的文件。
关键观察:文件转换服务
上传成功后,在响应头中注意到了一个关键细节:
X-File-Process: converting
X-Processor: LibreOffice/7.x
后端在文件上传后会经过一个转换服务处理,使用的组件是LibreOffice旧版本。 这是一个非常关键的信号——LibreOffice作为文档转换组件,历史上存在多个文件解析漏洞(如CVE-2023-2255等),攻击者可以通过构造特殊格式的文档,在解析阶段触发异常行为。
由于文件上传涉及文件类型检测、存储路径以及后台解析流程,这个入口成为了本次测试的重点对象。
0x04 文件解析漏洞验证:从文档到命令执行
进一步分析后台处理流程,确认文件转换组件版本较旧,存在已知的安全漏洞。
根据该版本LibreOffice的已知漏洞,构造了一个特殊的文档文件——外观上是一个普通的 .docx 文档,但其内部嵌入了经过特殊构造的XML实体,在被LibreOffice解析时可以触发异常行为。
通过Burp Suite将构造好的文件上传后,等待后台转换服务处理。几秒钟后,验证脚本确认了漏洞的存在:
# 使用验证脚本构造测试文件并上传
最终确认:文件解析链路存在安全问题。 通过构造特殊文件,可以在后台转换服务中触发非预期的代码执行。
从一个看似无害的文件上传功能,到获得应用服务器的操作权限,突破口就在于后端那个”默默干活”的文件转换组件。
0x05 服务器配置分析:一份”裸奔”的钥匙串
获得应用权限后,对应用目录进行分析。
发现Spring Boot配置文件:
application-prod.yml
其中包含:
数据库连接信息
Redis地址
应用配置参数
0x06 Redis缓存分析:会话数据的全面暴露
配置文件中暴露的Redis凭据,打开了另一扇门。
连接Redis后,发现其中保存了大量业务缓存数据包括:
用户Session:包含用户ID、用户名、角色、登录IP、登录时间
Token信息:当前活跃的JWT Token及关联的用户身份
用户权限信息:每个用户的完整权限列表,包括管理员账户
管理员的会话和完整权限列表暴露在Redis中。 结合上一步泄露的JWT签名密钥,攻击者可以伪造任意用户——包括超级管理员——的认证Token,直接以管理员身份访问后台。
部分缓存数据可能导致权限扩大,这正是下一步攻击的基础。
0x07 后台权限扩大与数据访问
结合已发现的信息——泄露的JWT密钥 + Redis中的管理员权限数据——伪造管理员Token,成功进入管理后台。
同时在测试文件管理功能时,发现了一个越权问题——文件资源权限控制不足,普通业务对象可能访问其他用户资源。 管理后台的数据导出功能可以批量导出全量用户数据和业务数据——一旦被恶意利用,将构成严重的数据泄露事件。
0x08 完整攻击链总结
文件上传入口
↓
前端类型限制可绕过
↓
文件解析漏洞利用
↓
获得应用服务器权限
↓
Spring Boot配置文件泄露
↓
Redis敏感信息获取
↓
伪造管理员Token,后台权限扩大
↓
文件资源越权访问 + 全量数据可导出
↓
业务数据全面泄露
0x0A 结语
在现代企业架构中,安全的关注点不能只停留在单个组件上,更需要关注从Web入口、应用服务到内部组件的整体安全——也就是组件之间的”接缝”。
这次渗透测试最深的感受是:安全不是一道墙,而是一条链。链条的强度取决于最弱的那一环,而攻击者永远不会只攻击一环。
单独看一个文件解析漏洞,它可能被定级为”中危”;单独看一个配置文件明文密码,它可能被定级为”低危”。但当这些”中危”和”低危”排成一条线时,结果就是整个业务系统的全面沦陷。
文件上传功能连接着文件转换服务,文件转换服务连接着应用服务器,应用服务器连接着配置中心,配置中心连接着数据库和缓存——每一个”连接”都是一个潜在的攻击面。安全团队需要从”点”的思维升级到”链”的思维,才能真正守住企业的核心资产。
原文链接:https://www.freebuf.com/articles/web/490209.html
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:只会看监控的实习生 AlbertJay AlbertJay《记一次文件上传漏洞引发的业务系统失陷:从Web入口突破到微服务数据泄露》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论