伪装成 YouTube 侧边栏的恶意 Chrome 扩展分析
Chrome 网上应用商店中发现了一个名为“Youside — YouTube Sidebar”的 Chrome 扩展。它与 YouTube 功能毫无关系。与承诺的功能——嵌入式播放器、订阅管理和快速访问——相反,它实现了一个第三方后端的瘦客户端,集成了远程界面控制、用户数据收集以及隐藏的变现机制。
架构:无逻辑客户端
ID 为 mmecpiobcdbjkaijljohghhpfgngpjmk 的这个扩展,体现了典型的恶意软件架构:本地逻辑极少,严重依赖外部服务器。启动时,它从 localStorage 生成或检索一个持久的 user_id,然后查询 https://mines.cloudapi.stream/user_info 的 API。服务器响应完全决定了用户界面的行为——从元素可见性到 HTML 块内容。
主要特性:
- 无调用 YouTube API 或
youtube.com域名 - 无实现 IFrame Player API
- 无处理订阅、视频搜索或视频流传输的逻辑
- 所有操作均由外部服务器响应控制
这种设计允许攻击者动态更改扩展行为,而无需在商店中更新代码。
远程界面控制
服务器返回一个包含 success、is_valid、rating 和 protxt 等字段的 JSON 对象。客户端直接将这些数据应用到 DOM 上,且不进行任何验证:
if (result.is_valid) {
proplansID.classList.add('h_');
playBtn.classList.remove('h_');
} else {
playBtn.classList.add('h_');
}
这种方法类似于功能标志,但缺少针对注入的防护。直接插入 HTML 尤其危险:
if (result.protxt) {
proplansID.innerHTML = result.protxt;
}
由于内容未经过过滤或清理,服务器可以通过 innerHTML 注入任意 JavaScript,即使在扩展的隔离上下文中,也能实现 XSS 攻击。
隐藏变现与跟踪
所有带有 .buyBtn 类的按钮均被拦截并重定向到外部域名:
document.querySelectorAll('.buyBtn').forEach(btn => {
btn.setAttribute(
'href',
`https://topup.cloudapi.stream/?user_id=${encodeURIComponent(localStorage.getItem("user_id"))}&type=game`
);
});
这些元素的任何点击都会通过 URL 参数传递用户的唯一 ID。这将用户操作与他们的个人资料关联,用于变现或进一步画像。
为实现可靠跟踪,它结合使用:
- 来自
localStorage的user_id(持久标识符) chrome.runtime.id(浏览器中扩展的唯一 ID)navigator.language(用户语言代码)
这种组合即使 IP 变更或 cookie 被清除,也能实现高精度识别。
缺少承诺的功能
尽管商店描述中声称如此,但该扩展中没有任何与 YouTube 相关的代码:
- 无调用 YouTube Data API
- 无通过 iframe 嵌入视频播放器
- 无播放事件处理
- 无播放列表或频道逻辑
它与 YouTube 的唯一交互是播放按钮点击时的重定向:
playBtn.addEventListener("click", () => {
window.location = "https://youtube.com/";
});
这证实了该扩展纯粹是一个有用工具的伪装,其真实目的是数据收集和流量变现。
关键要点
- 该扩展未提供承诺的 YouTube 功能。
- 界面完全由外部服务器通过无安全保障的 API 控制。
- 可能进行任意 HTML 注入,存在 XSS 风险。
- 通过组合标识符进行隐藏用户跟踪。
- 所有变现链接重定向到第三方域名,并传递
user_id。
— Editorial Team
暂无评论。