Exploiting vulnerabilities in Johnson & Johnson web apps¶
Ch12.070 Exploiting vulnerabilities in Johnson & Johnson web apps¶
📊 Level ⭐⭐ | 6.2KB |
entities/eaton-works-jnj-webapp-vulnerabilities.md
Exploiting vulnerabilities in Johnson & Johnson web apps¶
摘要¶
Eaton Works 安全研究员公开披露了强生(Johnson & Johnson)两个 Web 应用中的真实漏洞。 第一个是校园招聘系统,因后端使用硬编码 API 密钥而非 MSAL token 验证,导致近 1000 名学生信息泄露;第二个是内部审计跟踪管理系统(ATMS),被 20 家关联公司使用,通过 IDOR(不安全的直接对象引用)实现管理员接管。两个漏洞均于 2025 年 10 月报告给强生,但修复进展缓慢,直到 2026 年 6 月文章发布时仍在协调中。
核心要点¶
漏洞一:校园招聘系统 — MSAL 认证绕过¶
强生的校园招聘网站使用 Microsoft Authentication Library (MSAL) 进行前端认证,但 后端从未验证 MSAL token。后端 AWS API 实际使用硬编码 API 密钥进行身份验证。
攻击路径: 1. 修改前端 MSAL 代码,使其始终返回「已登录」状态 2. 直接访问招聘人员路由和后端 API 3. 后端使用硬编码密钥验证,完全忽略 MSAL token 4. 获取所有学生信息、面试评分和招聘人员笔记
根本原因:前端唯一认证(frontend-only authentication)— 后端不验证 token 有效性,静态 API 密钥无法区分用户身份。
漏洞二:内部审计系统 — IDOR 管理员接管¶
ATMS(Audit Tracking Management System)是强生及 20 家关联公司(包括 LifeScan、Ethicon、Janssen、Abiomed 等)使用的内部审计管理 Web 应用。
攻击路径: 1. 访问网站时立即重定向到 Microsoft SSO 登录页,但 ReactJS 应用已下载,暴露所有 API 端点 2. 调用 getAllUsers API,无需认证即返回 13,600 名强生员工数据 — 这证明所有 API 均无认证保护 3. 从帮助页面获取系统管理员的用户名和 WWID 4. 通过 MSAL 代码 patch 停止登录重定向,在 localStorage 中硬编码管理员凭据 5. 调用会话创建 API(GET 请求)获取有效 session GUID 6. 完成管理员接管,可切换 20 家公司的审计数据
额外发现:系统使用了幼稚的客户端加密方案来混淆某些秘密值,但这种安全性仅是表面文章。
深度分析¶
前端认证的系统性缺陷¶
两个漏洞的核心问题完全一致:将认证职责委托给前端,后端不做独立验证。这是企业 Web 应用中最常见也最危险的反模式之一。
MSAL 等前端认证库的作用仅限于 UI 层面的访问控制(隐藏/显示界面元素),它们不提供任何后端安全保障。当开发者将 MSAL 集成视为「完成了认证」时,实际上只是在客户端做了一个可被轻易绕过的门面。
[错误模式]
Browser → MSAL check (前端) → UI 渲染控制
Browser → API call → 后端(无 token 验证,使用静态密钥)
[正确模式]
Browser → MSAL check (前端) → UI 渲染控制
Browser → API call + Bearer token → 后端(独立验证 token 有效性、权限范围、用户身份)
企业安全中的 IDOR 持久性¶
IDOR 在 OWASP Top 10 中长期占据高位,但在 2026 年的企业应用中仍然普遍存在。ATMS 案例展示了 IDOR 的典型升级路径:
- 信息泄露:
getAllUsers端点暴露全部员工数据 - 权限提升:通过已知用户名和 WWID 伪造管理员身份
- 横向移动:系统支持在 20 家公司间切换,无租户隔离
20 家公司共享同一系统而无服务端租户隔离,这违反了多租户架构的基本安全原则。
漏洞披露时间线的启示¶
两个漏洞于 2025 年 10 月报告给强生。作者指出,与 2024 年的报告经历(「stellar — immediate action」)相比,此次体验「less positive」。 这反映出大企业在漏洞响应流程中可能存在的退化:当安全团队扩大后,协调成本和内部优先级冲突可能拖慢修复进度。
安全工程启示¶
- 前端认证 ≠ 认证:MSAL 检查仅影响 UI 渲染,后端必须独立验证 token 的有效性、过期时间和权限范围
- 硬编码 API 密钥 = 无认证:静态密钥无法区分用户身份,应使用短期 token(如 OAuth2 Bearer token)并绑定用户上下文
- IDOR 仍是 #1 Web 漏洞:在 2026 年的企业应用中仍然频发,说明安全开发生命周期(SDL)的执行力度不足
- 多租户隔离必须在服务端强制执行:20 家公司共享系统而无租户隔离,意味着任何一次认证绕过都是全量数据泄露
- 客户端代码是公开代码:React/JS 应用的所有代码均可被逆向工程,任何依赖客户端逻辑的安全机制都不可信
- 安全审计应覆盖第三方依赖:使用 MSAL 不等于安全,需要验证集成方式是否正确
实践启示¶
对于企业 Web 应用开发者: - 在 API 网关层统一实施 token 验证,不依赖各服务自行验证 - 使用 零信任架构 原则,每个 API 调用都必须携带并验证认证凭证 - 实施自动化 IDOR 检测(如 Burp Suite 的 Autorize 插件)作为 CI/CD 流水线的一部分 - 对涉及多租户的系统,必须在数据库查询层强制 tenant_id 过滤
相关实体¶
- Harness and post-training closing open-weight bug-finding gap
- Zero Trust Architecture