大家好,我是小白哥。

基本上所有人在接触网络的时候,都会接受信息安全教育:陌生人发来的链接不能随便点,小心中毒!

那为什么不能随便点,点了又可能会发生什么呢?对于大部分人非安全行业或者刚进入安全行业的小白来说,可能对此并没有太明确的认识。

有些链接点开后可能是钓鱼网站,伪装成某个正常的页面,让你输入账户、密码信息,这样一来钓鱼网站的制作者就能拿到你的账号信息。这类钓鱼链接打开后如果不去输入信息,问题也不大。

但还有一些链接更加危险,连点都不能点,一旦点击,可能就会被植入病毒、木马、挖矿程序、勒索软件,电脑或手机沦为别人的肉鸡。

今天就跟大家聊一下这类更危险的链接:点击一个链接,电脑或者手机就会被黑客控制,这是真的吗,如果是真的,他是怎么办到的呢?

链接是怎么打开的

首先来明确一个问题,当我们点击一个链接的时候,是什么程序来负责打开它呢?

在以前的时候,一般情况下,是由电脑上安装的浏览器来打开。

但是现在这几年,很多应用程序都会内嵌一个浏览器,不再使用系统安装的浏览器,而用自己内嵌的浏览器打开。

比如QQ、微信、钉钉、微博、邮件APP等等,它们都有自己的内嵌浏览器。

这么做的原因,其实也不难理解:为了流量!

但总归来说,不管系统的也好、APP内嵌的也罢,最终都是用浏览器打开了这个链接。

而说到浏览器,别看国内五花八门的浏览器有很多,主流的内核就那几个:

IE、Chroium、Webkit···

通过浏览器打开这些恶意链接的那一刻,危险才刚刚开始。

漏洞攻击

浏览器之所以能够展示出我们能看到的网页,离不开它内核中两个最重要的引擎:HTML渲染引擎和JavaScript执行引擎。

前者负责根据HTML网页内容排版渲染出我们看到的网页,后者负责执行网页中的JS代码,实现网页的动态交互。

JavaScript是一门解释执行的脚本语言,负责来解释执行它的就是这个JS执行引擎。

设想一下,假设JS执行引擎的代码有bug,不怀好意的人利用这个bug,写出一段特殊的JavaScript代码去触发执行引擎的bug,轻则让浏览器崩溃,重则执行恶意代码,控制主机。

事实上,这正是浏览器漏洞攻击的惯用手法。

市场份额最广的浏览器最容易被攻击,2015年之前,是IE的天下,那时候IE是最容易被攻击的浏览器。2015年之后,Chrome异军突起,成为了如今黑客主要攻击的对象。

除了JavaScript,IE浏览器还可以执行VBScript,除了网页脚本,浏览器在工作的时候也可能会引入一些外部插件,比如ActiveX、Flash这些东西,而这些东西也都是黑客最爱攻击的对象。

至于漏洞攻击手法,更是五花八门:

从早期的栈溢出、堆溢出,到后来的堆喷射、ROP,还有数组越界、UAF等各种招式。

当然浏览器和操作系统也不是吃素的,随着攻击方式的推陈出新,安全防御手段也是层层加码,从栈保护GS、地址空间随机化ASLR,到数据执行保护DEP、控制流保护CFG,还有浏览器沙箱防御,漏洞利用的难度大大增加。

经典漏洞

接下来盘点一下,浏览器攻防历史上,一些经典的漏洞。

CVE-2014-6332

这是一个IE浏览器的OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,用户使用Internet Explorer浏览器查看该网站的时允许远程执行代码。

而且这个漏洞可以绕过沙箱保护,危害极大。说白了,如果点开一个包含这个漏洞的URL,你的电脑就可能被对方控制了。

CVE-2014-0322

这同样是一个IE浏览器的漏洞,此漏洞是UAF(Use After Free)类漏洞,即引用了已经释放的内存,结合flash实现了防御机制的突破,实现执行攻击者任意代码,危害同样巨大。

CVE-2021-21220

这是一个Chrome浏览器的漏洞,今年刚刚爆发不久,同样通过一系列巧妙的手法绕过了浏览器的安全机制,实现远程代码执行,可用来控制主机。

大家可以在GitHub上找到这些漏洞的POC代码来测试验证一下,但仅供学习技术用途,切莫拿去干坏事发给别人。

对于我们普通人来说,不要点击来历不明的链接,如果确实要点击也要在安全的环境下点击(比如虚拟机中),及时给浏览器和系统打补丁。

所以,现在你知道为什么不要随便点击来历不明的链接了吧。