为什么有人会使用缓冲区溢出?

时间:2013-09-07 16:58:30

标签: c buffer-overflow

我买了“黑客 - 剥削艺术”这本书。其中一个内容是缓冲区溢出。我想我明白他们是如何工作的,但是,我不明白为什么有人会这样做。

让我假装我有一个不安全的程序。任何黑客都可能轻易导致缓冲区溢出。所以呢?那些黑客不知道它是哪个程序,即使他们愿意,他们还能做什么?他们没有我的电脑......即使他们没有登录就无法启动该程序,对吗?

所以基本上我的问题是,在什么情况下黑客会导致缓冲区溢出?他会怎么做?通过互联网?什么呢?

我希望我能在这个问题上找到合适的位置。我真的不明白为什么这样一个不安全的程序是如此重要。

1 个答案:

答案 0 :(得分:5)

  

让我假装我有一个不安全的程序。任何黑客都可能轻易导致缓冲区溢出。所以呢?那些黑客不知道它是哪个程序,即使他们愿意,他们还能做什么?他们没有我的电脑......即使他们没有登录就无法启动该程序,对吗?

如果您的计算机正在运行网络可访问的服务,或者它正在从网络(例如,Web浏览器)读取数据,则攻击者无法对您的计算机进行物理访问这一事实无关紧要。它仍然容易受到攻击,可以通过让您加载不安全的内容来远程利用它。

为了举例的目的,考虑一个Web浏览器,它使用固定大小的缓冲区来处理图像上的src属性。 (这不是一个真正的漏洞,但我们可以想象它存在于此示例中。)有人可以通过让您访问包含恶意内容的网页来利用您的浏览器:

<img src="example.jpeg?AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<exploit code here>">

他们甚至可能最终将此代码注入您可能通过运行包含该代码的广告访问的网页,或者通过发送指向该页面的垃圾邮件中的一堆链接。有各种方法可以最终触发不涉及直接使用计算机的缓冲区溢出。

相关问题