4

每个人都知道,有些网站可以通过查看它们来损害您的计算机,或者有些电子邮件可以向您的所有朋友发送邮件或仅通过阅读它们来收集有关您的信息。

这怎么可能?每个站点都只是普通的 HTML、CSS 和 JS,无法在计算机上进行任何永久性更改(cookie 除外,但这不会伤害您,对吗?)那么我怎么会感染病毒呢?

如果我点击广告,我如何感染病毒?自动运行程序的下载链接?

这些事情是怎么做的?什么编程语言?

4

2 回答 2

8

一般来说,这些向量的工作方式是利用用于读取/渲染 HTML、CSS 和 JavaScript 的软件中的缺陷。在一个拥有完美安全的浏览器/电子邮件程序和完美沙盒的完美世界中,您是对的,只是查看页面或电子邮件无法在您的计算机上加载病毒。但我们并不生活在那个完美的世界里。

一个例子是“缓冲区溢出”漏洞:攻击者花费大量时间和精力来发现特定程序将某些资源(例如 CSS 光标)加载到缓冲区中,但未能检查该资源是否足够小适合缓冲区。所以程序写入超出缓冲区末尾的字节。缓冲区经常在堆栈上,因此覆盖它们可能会覆盖函数调用的返回地址等内容。如果你制作的数据恰到好处,你可以让返回地址跳转到你正在加载的资源数据中的指令。到那时,所有的赌注都没有了,攻击者可以运行嵌入在该资源中的任意机器代码。

其他向量涉及页面上运行 JavaScript 的沙箱中的漏洞。

于 2013-08-04T11:22:48.443 回答
0

大多数用户在他们的浏览器中安装插件,例如 Adob​​e Acrobat、Shockwave Flash 和 Java。如果插件过期并且用户使用针对某些漏洞的代码访问恶意站点,攻击者可能能够执行任意代码,获得对系统的特权访问,安装病毒(例如加入僵尸网络), ETC。

幸运的是,现在现代浏览器将插件和组织(如谷歌)在抓取时检查恶意代码。

于 2013-08-04T12:15:33.290 回答