本文来自依云's Blog,转载请注明。
2015年9月13日,我的博客流量突然少了很多:
因为博客突然被百度标记为「安全联盟提醒您:该页面可能已被非法篡改!」(后边那个峰的流量来源于知乎,与此事件并无关联。)
然而我一直未发现任何异常。我使用了 Google 站长工具,Google 也没说有任何异常。所以我以为这不过是百度又发了什么神经。毕竟它也说,「有一个网友举报」。「安全联盟」那里可以申请解封,但是需要出卖手机号等隐私。更神奇的是,它要求你修正问题,却连是什么问题都不清楚。「安全联盟」的客服表示,这事他们也不清楚。
然而几天前,又有网友报告我的博客跳转到了奇怪的页面。第一次有人报告时我只当用户系统或者网络的问题,虽然我也疑惑,恶意软件或者 ISP 插广告不至于插 CJB 的广告啊。但是对方并没有能力来调查此事。这次总算是遇到了一个会抓包的读者了。于是让报告者 @xuboying 帮忙抓包,这才真相大白。
简单地说,确实有页面在传输过程中被篡改了。至于是不是非法的,就得问「有关部门」了。
事情是这个样子的:我有一篇文章嵌入了 GitHub Gist。而 GitHub Gist 的域名 gist.github.com 被污染,其中一个污染 IP 为 216.234.179.13。这大概是 CJB 的源服务器地址。
本来呢,嵌入 GitHub Gist 的代码是这样子:
<script src="https://gist.github.com/lilydjwg/0bfa6807b88e6d39a995.js"></script>
当解析到 216.234.179.13 之后,最奇妙的事情发生了:
- CJB 使用了自签名、过期、弱密钥的证书。火狐会嫌它太弱而不可覆盖地拒绝,其它主流浏览器也会因为证书问题而报错。小米浏览器会询问用户是否接受有问题的证书(普通用户哪里懂这个啊,估计大都会选择接受吧)。一旦接受,则进入下一步。
-
该服务器在访问时会返回一句复合了 HTML 和 JavaScript 的脚本,修改
window.location
到 CJB 的主页。而引入 GitHub Gist 的方式恰好是 JavaScript 脚本,于是它得到执行,跳转到 CJB 主页去了……(不过现在只会返回空白页了。)
后来百度取消了那个「被非法篡改」的提示,不过权重依然很低,不注意看根本找不到我博客唉。
知道是 GitHub gist 的原因之后就可以很快找到遇到同样问题的人了,比如:
Dec 05, 2015 11:48:18 PM
不用gist而用这个博客自带的代码工具呢?会不会改善权重?
还是不理解为啥污染到这个毫不相干的ip地址,总不会是长城随便挑的吧?
Dec 06, 2015 12:03:24 AM
当初污染扩大的时候有至少三千个 IP 呢,而且大部分是有网站的。据说有不少网站因此不得不屏蔽了中国的 IP:https://www.v2ex.com/t/158318
Dec 06, 2015 12:23:32 AM
额,原来这么回事,没想到DNS圈这么乱,小米的浏览器的证书提示不友好,没有说访问的是哪个网址,证书签的是哪个网址,如果有这个信息,我也能判断出问题。给MIUI提Bug估计还是一如既往的石沉大海。
Dec 09, 2015 01:01:14 AM
有关部门的链接好像多了个「1」?
Dec 09, 2015 12:19:10 PM
已修正 :-)
Dec 14, 2015 12:12:56 PM
试试 syntaxhighlighter
Dec 27, 2015 07:29:53 PM
所以说加载站外资源还是得启用 Subresource Integrity 啊。
Dec 28, 2015 07:43:30 AM
可那不是自己的资源,万一 Gist 改代码了怎么办呢?
Dec 28, 2015 10:23:07 AM
理论上改了 gist 代码,url 中的摘要会变吧?
应该有改动就会生成新的 url,不过得测一下原来的地址还能用不。
Dec 28, 2015 01:46:54 PM
不会变的。
Jan 03, 2016 12:09:22 PM
看过最近的流量么?这个网站好像被墙了
Jan 03, 2016 05:32:10 PM
没有明显的变化。国内部分地区是访问有问题的,没办法。
Jan 03, 2016 09:06:48 PM
目测sh电信/移动是好的,js移动电信是拦截的
Jan 06, 2016 06:24:25 AM
这个原因确实有点扯,你这博客被百度黑了好一阵子呢。
Mar 12, 2016 02:26:42 AM
“cjb是个炒域名广告站点。”
感觉有关部门在偷偷赚钱
Sep 29, 2016 09:01:38 PM
大神好厉害~~
Oct 24, 2016 10:05:57 PM
这个cjb网站是在太黑,我是最近中它毒的。手机电脑都中招。也许是新的一波。网上查了好久,总算找到这里(正解),关了java脚本和小程序总算解决了。这个cjb光明正大卖vpn我也是醉了,挂着其他vpn照样跳转,,真的太坑!
Nov 01, 2016 12:53:28 AM
无限跳转CJB,求搭救。感激不尽。
Nov 01, 2016 11:05:39 AM
你需要一个科学的 DNS。
Nov 01, 2016 11:09:07 AM
114.114.114.114
114.114.115.115
----要怎么改?烦死了,已经两個星期了,以前没遇到过。
Nov 01, 2016 11:22:18 AM
https://servers.ustclug.org/2016/05/neat-dns-add-port-5353/