12
5
2015
21

博客「被入侵」之谜底

本文来自依云'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 之后,最奇妙的事情发生了:

  1. CJB 使用了自签名、过期、弱密钥的证书。火狐会嫌它太弱而不可覆盖地拒绝,其它主流浏览器也会因为证书问题而报错。小米浏览器会询问用户是否接受有问题的证书(普通用户哪里懂这个啊,估计大都会选择接受吧)。一旦接受,则进入下一步。
  2. 该服务器在访问时会返回一句复合了 HTML 和 JavaScript 的脚本,修改window.location到 CJB 的主页。而引入 GitHub Gist 的方式恰好是 JavaScript 脚本,于是它得到执行,跳转到 CJB 主页去了……(不过现在只会返回空白页了。)

后来百度取消了那个「被非法篡改」的提示,不过权重依然很低,不注意看根本找不到我博客唉。

知道是 GitHub gist 的原因之后就可以很快找到遇到同样问题的人了,比如:

Category: 网络 | Tags: 网络 博客 安全 中国特色 | Read Count: 8343
@xuboying 说:
Dec 05, 2015 11:48:18 PM

不用gist而用这个博客自带的代码工具呢?会不会改善权重?
还是不理解为啥污染到这个毫不相干的ip地址,总不会是长城随便挑的吧?

Avatar_small
依云 说:
Dec 06, 2015 12:03:24 AM

当初污染扩大的时候有至少三千个 IP 呢,而且大部分是有网站的。据说有不少网站因此不得不屏蔽了中国的 IP:https://www.v2ex.com/t/158318

@xuboying 说:
Dec 06, 2015 12:23:32 AM

额,原来这么回事,没想到DNS圈这么乱,小米的浏览器的证书提示不友好,没有说访问的是哪个网址,证书签的是哪个网址,如果有这个信息,我也能判断出问题。给MIUI提Bug估计还是一如既往的石沉大海。

LQYMGT 说:
Dec 09, 2015 01:01:14 AM

有关部门的链接好像多了个「1」?

tk 说:
Dec 14, 2015 12:12:56 PM

试试 syntaxhighlighter

Jerry Qu 说:
Dec 27, 2015 07:29:53 PM

所以说加载站外资源还是得启用 Subresource Integrity 啊。

Avatar_small
依云 说:
Dec 28, 2015 07:43:30 AM

可那不是自己的资源,万一 Gist 改代码了怎么办呢?

Jerry Qu 说:
Dec 28, 2015 10:23:07 AM

理论上改了 gist 代码,url 中的摘要会变吧?
应该有改动就会生成新的 url,不过得测一下原来的地址还能用不。

xuboying 说:
Jan 03, 2016 12:09:22 PM

看过最近的流量么?这个网站好像被墙了

Avatar_small
依云 说:
Jan 03, 2016 05:32:10 PM

没有明显的变化。国内部分地区是访问有问题的,没办法。

xuboying 说:
Jan 03, 2016 09:06:48 PM

目测sh电信/移动是好的,js移动电信是拦截的

猫儿 说:
Jan 06, 2016 06:24:25 AM

这个原因确实有点扯,你这博客被百度黑了好一阵子呢。

tk 说:
Mar 12, 2016 02:26:42 AM

“cjb是个炒域名广告站点。”
感觉有关部门在偷偷赚钱

tinsho 说:
Oct 24, 2016 10:05:57 PM

这个cjb网站是在太黑,我是最近中它毒的。手机电脑都中招。也许是新的一波。网上查了好久,总算找到这里(正解),关了java脚本和小程序总算解决了。这个cjb光明正大卖vpn我也是醉了,挂着其他vpn照样跳转,,真的太坑!

cc 说:
Nov 01, 2016 12:53:28 AM

无限跳转CJB,求搭救。感激不尽。

Avatar_small
依云 说:
Nov 01, 2016 11:05:39 AM

你需要一个科学的 DNS。

cc 说:
Nov 01, 2016 11:09:07 AM

114.114.114.114
114.114.115.115
----要怎么改?烦死了,已经两個星期了,以前没遇到过。

Avatar_small
依云 说:
Nov 01, 2016 11:22:18 AM

https://servers.ustclug.org/2016/05/neat-dns-add-port-5353/


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

部分静态文件存储由又拍云存储提供。 | Theme: Aeros 2.0 by TheBuckmaker.com