Mid Station

词不达意

自从换了手机,不中用的自带浏览器首页总是附带着一些荤素不忌的所谓新闻,有些还真是不知所谓,比如以下这条:
中学语文教材上出现黄色网站链接
。我并没有像众多网友一样忙着翻箱倒柜发掘宝藏,一边赞叹有道是“书中自有颜如玉”。反倒是马上联想到了最近在漏洞悬赏平台遍地开花的子域名劫持漏洞(Subdomain Takeover)。

先来从逻辑上来分析一下这个事情,相信出版社的叔叔阿姨们是绝对不会有意把毒草栽到祖国花朵的课本上面的,所以在教材编写、校对的过程中,网站链接的内容还是好端端的诗词大全。再根据大家对广大中学生朋友们学习习惯的了解,课文多半是强作精神才能勉强读完,至于课后无关痛痒的大段文字常年处于无人问津的境地。因此,精明的站长也不会想到在这上面动手脚。所以这次的偷天换日恐怕也是歪打正着,若不是那位热爱诗词的女同学掘地三尺,加上其手眼通天的母亲大人出手相救,那失落的链接还不知道会被浸淫在知识的海洋中多久。

所以事情应该是这样的,在教材出版到母女二人误入不良网站之间的某个时间节点,原来的网站因为某些原因,或是运营不当倒闭,或是疏忽大意,结果是网站域名忘记续期了。恰巧有机智的互联网从业者抢注了这个看起来还不错的域名并用于发展这种男同胞喜闻乐见的业务,于是便产生了这条荒唐的新闻。

其实域名劫持也不是什么罕见的事情,早在两三年前就有安全研究者详细描述了漏洞的成因和利用方法。在Hackone上面就可以看到,就连互联网巨头Facebook,Twitter这样的网站都层遭遇到域名劫持,说实话原理不复杂,技术含量也不高,但是影响却是十分的大。

有前辈甚至写好了自动化发现域名劫持的脚本HostileSubBruteforcer,工作原理是首先用收集目标网站的子域名,然后检测子域名指向的IP地址是否仍然有效。若是子域名指向了像AWS,Heroku这样的虚拟主机服务,而实例又没有被正确声明,攻击者就可以向服务提供商宣传自己拥有这个子域名进而控制子域名。

然后还有一些十分有意思的案例,连美利坚新晋总统特朗普爷爷也躺枪。How I hijacked top celebrities tweets including Katy Perry, Shakira…这篇文章里面写到,作者先是听说一个叫 Inti De Ceukelaire的老兄劫持了总统先生的一条tweet。他的做法就跟上面提到的差不多,先是发现了一条特朗普在2012年发的twitter,里头有一个链接地址,刚好域名也是没有续期, 吓得他赶紧抢注的域名,然后把域名指向了一个Youtube的恶搞视频。而twitter有个机制是会自动抓取链接的内容,若是视频地址,还会直接显示播放窗口。于是万众瞩目的总统twitter上就出现了滑稽的一幕。
Hijacked twiiterHijacked twiiter

文章的作者啧啧称奇并称收到了重大启发,马上用Python写了一个脚本,抓取了关注数前1000名的twitter账号并且抓取它们上面的所有tweets,让后逐条遍历里面包含的链接并检查域名还是否有效。
结果扒出了109个可用的域名,能够劫持到Katty Perry, Shakira等大姐头的tweets。。。

这类案例的本质是相对固定的载体指向了动态的内容。中学教材和tweets都是相对固定的,一旦发出去了谁也不会天天闲着检查上面的链接是否失效了。要说防范,责任更多是在网站的运营方,保持网站内容的可用性应该算是最基本的要求。而发布链接的用户,除了选择比较可靠的网站链接,似乎也只能自求多福了。