首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对Internet版本9至11的零天攻击

针对Internet版本9至11的零天攻击
EN

Security用户
提问于 2014-04-28 11:17:58
回答 2查看 497关注 0票数 5

几天前,FireEye发现了一个漏洞,它影响到所有版本的IE (甚至是最新的11个版本)。微软有官方声明在这个问题上。

FireEye编写了一个解释细节的他们博客上的技术文章

该漏洞利用了以前未知的无后续使用漏洞,并使用众所周知的Flash攻击技术来实现任意内存访问,并绕过Windows的ASLR和DEP保护。

和剥削。虽然我想我理解了要点,但如果有人能用更简单的方式来解释它,我会很高兴的。我真的很喜欢阅读openSsl中关于心脏出血漏洞的解释,并希望有人能以类似的方式解释它。

EN

回答 2

Security用户

发布于 2014-04-28 19:49:05

我真的不知道提问者或任何/每个人的技术能力来自什么水平,所以让我们从最底层开始,用我能用的最简单的语言来做。如果你有计算机科学的硕士学位或者你是ROP传奇或者其他什么的话,请不要生气.

为了了解所涉及的漏洞,即使是在基本的层次上,您也需要对计算机的计算方式有一定的了解(您需要了解“存储程序控制”计算机的基本原理。一旦您对此有了一些了解,我们就可以讨论一般的缓冲区溢出攻击。那么,一旦我们理解了缓冲区溢出,我们就了解了这两种情况--我们可以开始研究具体的例子,而不是使用这些更先进的技术中的一些比较先进的例子,并希望能够真正地理解它们的任何细节。

从最底层开始,让我们简单地谈谈计算机是如何计算的,或者处理器是如何处理的。在您的计算机中,您有一个CPU,而CPU有各种寄存器,可以在其上进行直接的数学操作。计算机也有内存,程序在其中加载和运行。有一个特殊的寄存器称为指令指针,它的任务是指向内存中当前正在运行的程序的指令所在的位置,这样CPU就可以获取和执行它。它一个接一个地执行指令,直到到达跳转、分支或返回等。然后它将改变指令指针,从而指向内存中的不同位置并继续执行。这个指令指针非常重要。如果你能劫持它,你可能可以让计算机运行你放在内存中的其他地方。看过那些写着“买到EIP”的t恤吗?这就是我们要说的。如果你能控制EIP,你就可以控制机器。

现在,让我们从这个“机器水平”移动“向上”一点。大多数现代编程语言都有一个子例程调用的概念。这将导致指令指针跳转到函数S代码所在的新内存区域。该函数将一直运行,直到它完成,然后控制将返回到主程序,导致指令指针被设置回主函数的位置,在执行之前停止执行。简化一下..。所以你已经运行了这个程序,它一直运行到一个函数调用。函数调用将将执行移到内存中的另一个位置。然后它将在新的地方运行,直到返回为止。此时,它必须返回到主函数。应该清楚的是,机器将记住这个初始值,即初始指令指针的值,否则它将不知道在这里返回。这是已知的返回指针。因此,返回指针包含调用函数的地址,并存储在称为堆栈的数据结构(内存中)中。堆栈以LIFO的方式工作,以先出的方式工作,因此它被称为‘stack’。最后一个进来是第一个出来的。通常,堆栈包含与函数调用相关的内容。将堆栈看作是一种张贴,它为一些需要记住的小事情做了笔记。因此,当函数调用被执行时,首先被推到堆栈上的是函数调用参数。如果有..。然后,它在堆栈上的主程序中推送指令指针的值(返回指针)。然后调用函数本身,并在堆栈上为函数本身的局部变量分配空间。这个函数就是这样的,直到它返回。此时,这些局部变量从堆栈中取出(pop),然后返回指针被弹出,而返回指针再次被设置为指令指针--我们返回到主程序中执行。这实际上是发生在你面前的电脑上每秒数百万次的事情。

现在,让我们进入缓冲区溢出错误。缓冲区溢出在一类称为代码错误的错误中。缓冲溢出已经知道了几十年,但直到1996年才成为主流,阿列弗·一个的开创性论文“为了乐趣和利润粉碎堆栈”出现在了“相册”杂志第49期。这是一本值得一读的书,即使是今天。缓冲区溢出允许攻击者将数据发送到目标计算机,并获得一些执行的代码(即获取机器上的根/管理程序)。有些在本地工作,另一些则在网络上工作。其基本思想是,程序接受用户输入,但在移动数据之前不能正确检查数据的大小。这是关于在输入字段上没有适当的边界检查。想把很大的东西塞进一个小盒子里。为了简单和简洁,我不会进入一些易受攻击的C代码的实际示例,后者可能已经超出了窗口。

几个小时后再查。我现在得走了。我会回来的。我将谈一谈具体的剥削问题。对不起,如果这个网站不典型或通常的行为,我是新来这里。只上过几次。

票数 1
EN

Security用户

发布于 2014-04-28 18:28:35

我会尽量简单一点。浏览器漏洞是客户端漏洞,可用于绕过浏览器的沙箱环境以及操作系统,从而在计算机上获得升级的权限。

UAF是一个典型的浏览器漏洞,在几乎所有流行的浏览器中都经常出现。在此漏洞中,攻击者首先创建Javascript对象,然后删除它。一旦对象被删除或释放,脚本将再次尝试访问同一个对象。这会导致浏览器内部的内存损坏。现在,为了准确定位内存位置以控制指针,攻击者使用了诸如堆喷面向返回的编程(ROP)之类的内存喷涂技术。根据操作系统的类型,攻击者使用不同的技术向内存中喷洒垃圾数据,并在攻击成功后启动有效载荷。

我试着变得简单。希望它能帮到你。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/56804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档