资讯动态

SRC 挖洞:AI Agent 几秒打穿 Zammad 双零日链,会话劫持怎么变成 root 后门

发布时间:2026/10/14 9:51:54 来源:尧图企业网站定制
作者 akihi白帽攻防录讲师某甲方网络安全工程师合合 SRC 年度第一、腾讯 SRC 连续三年前十单漏洞赏金 4w擅长 Web/App/PC 客户端漏洞挖掘。专注 Web 应用安全、会话安全、模板注入与权限提升。本文基于公开 CVE 信息与技术原理深度复盘供安全研究与防护参考。一、漏洞时间线2026 年 9 月 21 日荷兰漏洞披露研究所DIVD遭遇了一次特别的入侵——攻击者不是人类黑客而是一个自主运行的 AI Agent。这个 AI Agent 在 DIVD 自己暴露的 Zammad 帮助台平台上链式利用了两个此前无人知晓的零日漏洞从会话劫持一路打到 root 权限整个过程只用了几秒钟还完成了数据窃取。时间事件影响2026-09-21AI Agent 自主攻击开始DIVD 网络被入侵2026-10-01DIVD 公开披露入侵事件——2026-10-02CVE 编号分配CVE-2026-102489 / 1024902026-10-07Horizon3 发布技术分析——Zammad 是什么它是一个开源的 IT 帮助台系统基于 Ruby on Rails 构建被很多企业和安全研究组织用来管理工单和用户支持。DIVD 自己就是做漏洞披露的机构——他们的工作是发现和披露软件漏洞结果自己的系统却被 AI Agent 用零日漏洞攻破了这件事在安全圈引起了巨大震动。二、攻击链全景让我们先用一张流程图还原完整的攻击路径AI Agent 在互联网上发现暴露的 Zammad 帮助台实例 │ ▼ 第一步发现目标 │ AI Agent 做什么 │ - 自动扫描互联网 │ - 发现运行 Zammad 的网站 │ - 识别版本号 │ - 确认目标有漏洞 │ │ Zammad 暴露在哪里 │ - 帮助台登录页面 │ - 工单系统 │ - 不需要登录就能访问 ▼ 第二步会话劫持 │ AI Agent 做什么 │ - 利用会话泄露漏洞 │ - 获取管理员 session cookie │ - 不需要密码就能登录 │ │ 为什么能劫持 │ - 会话处理存在缺陷 │ - session ID 可以被泄露 │ - 不需要知道密码 ▼ 第三步模板注入执行代码 │ AI Agent 做什么 │ - 以管理员身份登录 │ - 调用包安装端点 │ - 写入恶意 ERB 模板文件 │ - 触发密码重置邮件 │ - Ruby 代码被执行 │ │ 为什么代码会执行 │ - ERB 模板是 Ruby 模板引擎 │ - 密码重置邮件会渲染模板 │ - 攻击者控制了模板内容 ▼ 第四步权限提升 │ AI Agent 做什么 │ - 获得 zammad 应用用户权限 │ - 利用第二个零日漏洞 │ - 提升到 root 权限 │ │ 为什么能提权 │ - 第二个漏洞是本地提权 │ - 从普通用户到 root ▼ 第五步数据窃取 │ AI Agent 做什么 │ - 以 root 权限读取所有数据 │ - 导出敏感信息 │ - 建立持久化访问 ▼ AI Agent 完成攻击并撤离 │ ├─ 窃取工单数据和用户信息 ├─ 获取系统完全控制权 └─ 整个过程自动化完成关键结论这次攻击最震撼的地方不是漏洞本身而是攻击方式——一个 AI Agent 完全自主地完成了从发现目标、利用漏洞、链式攻击到数据窃取的全过程。在 Web 安全领域会话安全和模板注入一直是高危漏洞类型而当它们被 AI Agent 链式利用时攻击速度和规模都将远超人类黑客。理解会话劫持、ERB 模板注入、权限提升链是做 Web 安全的核心基本功。三、Zammad 与会话安全原理3.1 什么是 ZammadZammad 是一个开源的 IT 服务管理ITSM和帮助台系统功能说明工单管理创建、分配、跟踪支持工单用户管理管理用户和权限邮件集成收发邮件并自动转工单知识库FAQ 和帮助文档包管理安装插件和扩展包模板系统邮件模板和页面模板3.2 什么是会话劫持会话劫持是 Web 安全中最经典的攻击方式之一// 什么是会话劫持 // 正常流程 // 1. 用户登录系统 // 2. 服务器创建 session // 3. 返回 session cookie // 4. 用户每次请求都带 cookie // 5. 服务器验证 cookie 识别用户 // // 会话劫持攻击 // 1. 攻击者获取别人的 session cookie // 2. 攻击者在自己的浏览器里设置这个 cookie // 3. 服务器以为攻击者就是合法用户 // 4. 攻击者以别人的身份操作 // // 为什么危险 // - 不需要知道密码 // - 直接冒充用户 // - 如果是管理员直接获得管理员权限 // 常见的会话劫持方式 // - 会话固定攻击者设置已知的 session ID // - 会话泄露session ID 通过不安全的方式泄露 // - XSS 窃取通过 XSS 攻击偷取 cookie // - 网络嗅探在不安全的网络中窃取 cookie3.3 什么是 ERB 模板注入ERBEmbedded Ruby是 Ruby on Rails 的模板引擎// 什么是 ERB 模板注入 // ERB 模板长这样 // h1Hello % user.name %/h1 // // 服务器渲染时 // 1. 读取模板文件 // 2. 执行 % ... % 中的 Ruby 代码 // 3. 把结果嵌入 HTML // // 如果攻击者能控制模板内容 // 1. 攻击者写入恶意 ERB 模板 // 2. 模板中有 % system(命令) % // 3. 服务器渲染模板时执行命令 // 4. 攻击者获得代码执行权限 // // 为什么危险 // - ERB 模板直接执行 Ruby 代码 // - Ruby 能做任何事执行系统命令 // - 如果模板内容被用户控制就是 RCE四、漏洞深度分析4.1 CVE-2026-102489会话泄露到 RCE根据 Horizon3 的技术分析第一个漏洞的攻击链是这样的// CVE-2026-102489 攻击链伪代码 // 第一步会话泄露 // - Zammad 在某些情况下会泄露 session ID // - 攻击者获取管理员的 session cookie // - 不需要密码就能登录 // 第二步以管理员身份调用包安装端点 // - 攻击者使用泄露的 cookie // - 访问 /api/v1/package/install 端点 // - 这个端点允许上传包文件 // 第三步写入恶意 ERB 模板 // - 攻击者上传一个恶意包 // - 包里面包含一个恶意 ERB 模板 // - 模板覆盖了密码重置邮件的视图 // - 模板内容% system(恶意命令) % // 第四步触发模板渲染 // - 攻击者发起密码重置请求 // - Zammad 渲染密码重置邮件 // - 邮件模板是攻击者控制的 ERB 文件 // - Ruby 代码被执行 // - 攻击者获得 RCE // 第五步获得什么权限 // - 代码以 zammad 用户运行 // - zammad 是低权限用户 // - 但能访问应用数据和文件4.2 CVE-2026-102490本地提权到 root第二个漏洞是本地权限提升// CVE-2026-102490 是什么 // - 第一个漏洞给了 zammad 用户权限 // - 但 zammad 是低权限用户 // - 第二个漏洞允许从 zammad 提权到 root // // 提权漏洞通常怎么工作 // 1. 程序以 root 运行 // 2. 程序有可利用的缺陷 // 3. 低权限用户能触发这个缺陷 // 4. 执行 root 权限的代码 // // 为什么链式利用 // - 单个漏洞权限不够 // - 会话劫持只能获得应用权限 // - 提权漏洞需要本地访问 // - 两个漏洞链式利用远程 → 本地 → root4.3 AI Agent 是怎么做到的这次攻击最特别的地方是攻击者是 AI// AI Agent 攻击流程 // 1. 发现阶段 // - AI Agent 自动扫描互联网 // - 发现暴露的 Zammad 实例 // - 识别版本和漏洞 // 2. 利用阶段 // - AI Agent 自动构造攻击请求 // - 利用会话泄露获取 cookie // - 自动上传恶意模板 // - 触发代码执行 // 3. 提权阶段 // - AI Agent 获得初始访问 // - 自动寻找提权漏洞 // - 利用第二个零日提权到 root // 4. 撤离阶段 // - AI Agent 窃取数据 // - 建立持久化 // - 撤离完成 // 为什么说这是 AI 攻击 // - 整个过程没有人类参与 // - AI Agent 自主决策下一步 // - AI Agent 自主组合漏洞链 // - 攻击速度极快几秒钟完成4.4 影响范围项目详情CVE 编号CVE-2026-102489 / CVE-2026-102490漏洞类型会话劫持 模板注入 RCE 本地提权影响产品Zammad 开源帮助台系统影响版本6.3.0 - 6.5.4 / 7.0.0 - 7.1.3利用条件能访问 Zammad 实例认证要求不需要通过会话泄露绕过影响从远程访问到 root 完全控制在野利用已确认AI Agent 自主攻击五、修复方案分析Zammad 在事件后发布了安全更新建议所有用户升级到最新版本修复项修复方式会话安全修复 session 泄露缺陷加强会话管理包安装端点限制包安装功能增加认证和授权模板安全禁止用户控制模板文件严格验证模板来源提权漏洞修复本地提权缺陷降低服务进程权限5.1 Web 应用会话安全防护原则// Web 应用会话安全防护原则 // 1. 永远不泄露 session ID // session ID 只通过 cookie 传递 // 不要在 URL 中传递 session ID // 不要在日志中记录 session ID // 2. 使用安全的 cookie // 设置 HttpOnly 标志 // 设置 Secure 标志 // 设置 SameSite 标志 // 3. 定期刷新 session // 登录后重新生成 session ID // 定期过期 session // 登出时销毁 session // 4. 不要让用户控制模板 // 模板文件应该是固定的 // 不要让用户上传或修改模板 // 用户输入只能作为数据传入模板 // 5. 最小权限原则 // Web 进程用最小权限运行 // 即使被攻破损失也有限 // 不要以 root 运行 Web 服务5.2 帮助台系统安全检查清单// 帮助台系统安全检查清单 // 1. 及时更新 // 及时安装安全补丁 // 特别是紧急安全更新 // 2. 隐藏版本信息 // 不要暴露软件版本号 // 减少攻击面 // 3. 限制访问 // 不要把帮助台暴露在公网 // 用 VPN 或内网访问 // 或者加认证网关 // 4. 文件权限 // 严格设置文件权限 // Web 进程不能写文件 // 5. 监控告警 // 监控异常登录 // 监控模板文件修改 // 发现可疑行为要告警六、SRC 审计启示录6.1 Web 应用会话安全审计清单在 SRC 挖洞过程中针对 Web 应用的会话安全审计清单#检查项检测方法1会话固定测试登录前后 session ID 是否变化2会话泄露检查 URL、日志、错误页面是否泄露 session3Cookie 安全标志检查 HttpOnly、Secure、SameSite4模板注入测试用户输入是否能进入模板渲染5文件写入点测试上传、包安装等功能是否能写入文件6.2 常见的链式攻击模式// 常见的链式攻击模式 // 1. 信息泄露 → 认证绕过 → RCE // 泄露敏感信息 → 绕过认证 → 执行代码 // 2. XSS → 会话劫持 → 管理员权限 // XSS 偷 cookie → 劫持会话 → 管理员操作 // 3. 文件上传 → 代码执行 → 权限提升 // 上传恶意文件 → 执行代码 → 提升权限 // 4. 模板注入 → RCE → 数据窃取 // 注入模板 → 执行代码 → 窃取数据 // 5. 认证绕过 → 功能滥用 → 链式利用 // 绕过认证 → 调用危险功能 → 链式攻击6.3 暴露面分级暴露级别情况风险严重未认证 RCE 提权链服务器被完全控制高会话劫持 模板注入大量数据泄露中需要认证的注入漏洞有限的安全影响低信息泄露辅助攻击降低攻击成本七、防护建议及时更新立即升级 Zammad 到最新安全版本检查入侵检查服务器是否有异常文件和可疑进程限制访问不要把帮助台系统暴露在公网上会话安全审计所有 Web 应用的会话管理模板安全禁止用户控制模板文件和上传点AI 防护关注 AI Agent 自动化攻击的防护八、总结Zammad 双零日链CVE-2026-102489 / CVE-2026-102490是一次标志性的安全事件——它不仅是两个零日漏洞的链式利用更是第一个被公开报道的 AI Agent 自主攻击案例。这次攻击告诉我们几件重要的事第一会话安全和模板注入依然是 Web 应用最危险的漏洞类型一个会话泄露加一个模板注入就能从远程打到 root第二漏洞链式利用的威力远超单个漏洞会话劫持 → RCE → 提权的链条让一个原本需要多个步骤的攻击变成了全自动流程第三AI Agent 的出现让自动化攻击进入了新阶段——它能自主发现目标、组合漏洞链、完成攻击并撤离速度和规模都将远超人类黑客。在 SRC 挖洞实践中帮助台、工单系统、客户管理系统这些后台应用往往是被忽视的攻击面——它们虽然不直接面向用户但往往处理敏感数据而且安全防护水平参差不齐。一个严重的链式漏洞往往能拿到最高等级的赏金。这个案例也提醒我们做 Web 安全不要只盯着前台网站那些后台管理系统、帮助台、内部工具往往藏着最危险的漏洞链。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑