IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    博客「被入侵」之谜底

    依云发表于 2015-12-05 22:20:57
    love 0

    本文来自依云'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 主页去了……(不过现在只会返回空白页了。)

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

    另外参见:

    • 【吐槽】gist.github.com疑遭中间人攻击 - ahdung - 博客园
    • 部分网站跳转CJB问题求教.................._firefox吧_百度贴吧
    • 为什么访问 XDA 总被跳转至 cjb.net? - V2EX


沪ICP备19023445号-2号
友情链接