XXL-JOB SSRF 漏洞总结 (Issue #3935) 漏洞概述 在 的 接口中存在服务端请求伪造 (SSRF) 漏洞。 触发条件:低权限用户(拥有作业组权限)在手动触发作业时,可以提交任意 值。 漏洞原理:服务层仅验证用户是否属于作业组,未验证 是否属于该组或可信执行器。触发时,提供的 会覆盖组配置的地址。管理服务器随后使用 HTTP 客户端向攻击者控制的 URL 发起 请求。 危害:攻击者可利用管理服务器的网络位置访问内部 HTTP 目标,窃取 和包含作业元数据的 对象。 影响范围 受影响版本:xxl-job <= 3.3.2 前置条件: 攻击者拥有有效的认证账户。 攻击者至少拥有一个作业组的权限。 攻击者不需要管理员权限。 潜在影响: 服务器端访问管理服务器可达的任意 HTTP 目标。 访问 Docker 内部或其他非公共服务。 泄露平台访问令牌 ( )。 泄露作业元数据和执行上下文。 内部网络映射及针对管理环境可达服务的后续攻击。 修复方案 不要信任手动触发时的 客户端输入。 仅在服务器端从受信任的作业组配置或注册记录中解析执行器地址。 如果必须允许地址覆盖,请实施严格的白名单验证,并将地址限制为当前作业组。 阻止回环、链路本地、Docker 内部、私有范围和元数据服务目标。 考虑使用服务器端执行器标识符替换自由格式 URL。 添加回归测试以覆盖未授权地址覆盖场景。 POC / 利用代码 1. 攻击者控制的 HTTP 金丝雀 (Python) 2. 利用步骤 (Docker 环境)