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

C 为什么会有人使用缓冲区溢出?,c,buffer-overflow,C,Buffer Overflow,我买了《黑客——剥削的艺术》一书。其内容之一是缓冲区溢出。我想我理解它们是如何工作的,但是,我不明白为什么有人会这样做 让我们假设我有一个不安全的程序。任何黑客都很容易造成缓冲区溢出。那又怎么样?那些黑客不知道它是哪个程序,即使他们知道,他们还能做什么?他们没有我的电脑。。。即使他们不登录也无法启动该程序,对吗 所以基本上我的问题是,在什么情况下黑客会导致缓冲区溢出?他会怎么做?通过互联网?然后呢 我希望我的问题是对的。我真的不明白为什么有这么一个不安全的程序这么重要 让我们假设我有一个不安全的

我买了《黑客——剥削的艺术》一书。其内容之一是缓冲区溢出。我想我理解它们是如何工作的,但是,我不明白为什么有人会这样做

让我们假设我有一个不安全的程序。任何黑客都很容易造成缓冲区溢出。那又怎么样?那些黑客不知道它是哪个程序,即使他们知道,他们还能做什么?他们没有我的电脑。。。即使他们不登录也无法启动该程序,对吗

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

我希望我的问题是对的。我真的不明白为什么有这么一个不安全的程序这么重要

让我们假设我有一个不安全的程序。任何黑客都很容易造成缓冲区溢出。那又怎么样?那些黑客不知道它是哪个程序,即使他们知道,他们还能做什么?他们没有我的电脑。。。即使他们不登录也无法启动该程序,对吗

如果您的计算机正在运行网络可访问的服务,或者正在从网络读取数据(例如,web浏览器),那么攻击者无法物理访问您的计算机这一事实并不重要。它仍然很脆弱,可以通过让您加载不安全的内容远程利用它

例如,考虑一个web浏览器,它为图像上的
src
属性使用固定大小的缓冲区。(这不是一个真正的漏洞,但让我们想象一下,就本例而言,它是存在的。)有人可以通过让您访问包含恶意内容的网页来利用您的浏览器:

<img src="example.jpeg?AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<exploit code here>">
“>
他们甚至可以通过运行包含该代码的广告,或通过发送一堆指向该页面的垃圾邮件链接,将该代码注入您可能访问的网页中。有各种方法可以触发缓冲区溢出,而不涉及直接使用计算机

让我们假设我有一个不安全的程序。任何黑客都很容易造成缓冲区溢出。那又怎样?那些黑客不知道它是哪个程序,即使他们知道,他们能做什么?他们没有我的电脑…即使,他们不登录也无法启动该程序,对吗

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

就本例而言,请考虑一个web浏览器,该浏览器为图像上的
src
属性使用了固定大小的缓冲区。(这不是一个真正的漏洞,但让我们假设它是为本例而存在的。)有人可以通过让您访问带有恶意内容的网页来利用您的浏览器:

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

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

你说得对,但是我认为它太宽泛了&可能黑客攻击你的电脑没什么大不了的。。bt用大量数据攻击某个计算机组织或攻击某个数据中心/路由器可能是大不了的。基本思想是它允许黑客破坏一个程序。。。wikipedia stack_buffer_overflow列出了一些值得注意的好例子,说明了为什么这是个问题。一旦他们登录,他们就可以让你的应用程序执行他们放入缓冲区的代码。他们能做的最好的情况就是崩溃。事实上,如果您的代码易受缓冲区溢出的影响,您可能会以很难调试的方式使其经常崩溃。您的位置是正确的,但是我认为它太宽泛了&可能黑客攻击你的电脑没什么大不了的。。bt用大量数据攻击某个计算机组织或攻击某个数据中心/路由器可能是大不了的。基本思想是它允许黑客破坏一个程序。。。wikipedia stack_buffer_overflow列出了一些值得注意的好例子,说明了为什么这是个问题。一旦他们登录,他们就可以让你的应用程序执行他们放入缓冲区的代码。他们能做的最好的情况就是崩溃。事实上,如果您的代码容易受到缓冲区溢出的影响,那么您可能会以很难调试的方式使其经常崩溃。