不小心点了一个链接,完了!

李志宽
• 阅读 1219

不小心点了一个链接,完了!

大家好,我是周杰伦。

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

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

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

不小心点了一个链接,完了!

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

不小心点了一个链接,完了!

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

链接是怎么打开的

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

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

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

比如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代码来测试验证一下,但仅供学习技术用途,切莫拿去干坏事发给别人。

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

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

哦对了,这里有一个链接,谁来帮我点一下:

https://shimowendang.com/docs/TdpXTY6H9J8jygd8/read 不小心点了一个链接,完了!

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
vue+element 表格formatter数据格式化并且插入html标签
前言   vue中element框架,其中表格组件,我既要行内数据格式化,又要插入html标签一贯思维,二者不可兼得也一、element表格数据格式化  !(https://oscimg.oschina.net/oscnet/3c43a1cb3cbdeb5b5ad58acb45a42612b00.p
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
3年前
4cast
4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页:
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
李志宽
李志宽
Lv1
男 · 长沙幻音科技有限公司 · 网络安全工程师
李志宽、前百创作者、渗透测试专家、闷骚男一位、有自己的摇滚乐队
文章
89
粉丝
25
获赞
43