使用手机 Chrome 访问某数码论坛时会自动跳转到奇怪的网站,而且是在帖子加载完成后才动态跳转。不稳定复现,仅在 Chrome 上偶现,Edge 无法复现,桌面浏览器无法复现。
主要涉及的两个恶意域名均注册于 5 月底:
检查跳转网络请求的调用堆栈,发现一个名为jquery.min-4.0.2.js
的可疑文件。
检查此文件,发现它并不是 jQuery ,而是一段混淆过的恶意代码,推测是用来跳转到恶意网站。可以从原链接或者Internet Archive获取:
这个 evil jQuery 是由托管在 cdn.bootcss.com 上的highlight.js引入的。当对此 highlight.js 的请求具有特定的 Referer和移动端 UA时,服务器才会返回带有恶意代码的 highlight.js ,否则返回正常代码,伪装性极强。而且,这段代码执行时是否引入恶意 jQuery 的操作也具有特定条件,目前我测试时使用的链接已经无法复现。
恶意的 highlight.js 可以从这里获取到,恶意代码位于文件尾部,粗略看了一下,大概是如果浏览器不是桌面端,就在 head 部分放置一个 script 标签,应该就是引入恶意 jQuery 的方法了。下图是恶意 highlight.js 与同版本正常 highlight.js 的 diff 。
发出如下网络请求,可以获取到带有恶意代码的 highlight.js ,截至写作时依然有效:
curl 'https://cdn.bootcss.com/highlight.js/9.7.0/highlight.min.js' \
-H 'sec-ch-ua: "Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"' \
-H 'Referer: https://bbs.letitfly.me/' \
-H 'sec-ch-ua-mobile: ?1' \
-H 'User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36' \
-H 'sec-ch-ua-platform: "Android"' \
--compressed
由于连接是 https 连接且证书正确,可以推测 Bootcss 服务器大概率已经被攻击者掌控。建议在项目中尽快换掉 Bootcss/Bootcdn 。
1
GPLer 2023-06-20 08:15:17 +08:00 via Android
bootcdn 之前就出过问题,他家的各种中文网 /中文文档更是搜索引擎污染源,感觉出啥幺儿子都不奇怪。
|
2
xiaoz 2023-06-20 08:17:36 +08:00
这家已经出过几次问题了,现在已经完全不信任。
|
3
jucelin 2023-06-20 08:21:17 +08:00
会不会就是官方所为,亦或者是他们的 CDN 供应商所为
|
4
SmiteChow 2023-06-20 09:32:32 +08:00
这网站第一次听,自从 jsdivr 被墙,前端公共 cdn 的灯就已经灭了
|
5
Rache1 2023-06-20 09:40:37 +08:00
上个月看到有人引用 BootCDN 的 jQuery 也遇到了类似的问题
|
6
FakerLeung 2023-06-20 09:48:14 +08:00
没想到都 2023 年还有人在用 bootcdn ,这家公司出了好几次事故了,目前是完全不信任的级别。
|
7
weixiangzhe 2023-06-20 09:50:27 +08:00
一年崩 3 次的玩意咋还有人用,直接对象存储啊
|
8
kkocdko 2023-06-20 11:57:07 +08:00
才发现 jQuery 都出版本 4 了
|
9
LeviMarvin 2023-06-20 17:55:38 +08:00
这段代码是经过混淆的,难以阅读。它定义了几个函数:a0_0x55ea 、loadJS 、a0_0x1588 、isPc 、vfed_update 和 check_tiaozhuan 。它还声明并为三个变量 tsastr 、bdtjfg 和 cnzfg 设置了值。
check_tiaozhuan()函数似乎检查用户是否使用移动设备,通过检查 navigator 对象来判断。如果他们正在使用移动设备,它将根据各种条件设置_0x34f873 的值,然后使用该值调用 vfed_update(_0x5e3fa1)函数。vfed_update(_0x5e3fa1)函数从_0x5e3fa1 指定的 URL 加载 JavaScript 文件,这可能会将用户的浏览器重定向到另一个页面。 |
10
chenjia404 2023-06-24 16:25:24 +08:00
目前用 jsdelivr 的最多吧,还有就是 cdnjs 。
我一般使用这些第三方静态资源 cdn ,都会加入一个 SRI 。 |
11
chenjia404 2023-06-24 16:37:46 +08:00
Bootcss CDN 为什么在 2023 年了,还不加入 SRI 。
|
12
Francklin 145 天前
推荐使用 webcache.cn 替代 , 支持 SRI
|