我在哪里可以找到缓冲区溢出的演示?

时间:2010-05-20 05:01:19

标签: security webserver

是否有网站,或者是否有简单的方法来设置网站,这表明缓冲区溢出会发生什么?这是在网络应用程序的上下文中。

2 个答案:

答案 0 :(得分:1)

第一个问题是......什么是网络服务器或图书馆? IIS-6运行ASP脚本解释器? IIS-7背后的ASP.NET? Apache Tomcat?像Poco中的HTTPServer一样的库?

要利用缓冲区溢出,必须首先在应用程序中找到可能发生溢出的特定位置,然后确定必须发送哪些确切字节以使用正确的字节覆盖内存以运行到堆栈然后执行您在超限中发送的机器代码(因为您已经重写了堆栈)。

http://en.wikipedia.org/wiki/Buffer_overflow

http://seclists.org/fulldisclosure/2005/Apr/412

http://www.microsoft.com/technet/security/bulletin/MS06-034.mspx

http://www.owasp.org/index.php/Buffer_Overflow

http://www.windowsecurity.com/articles/Analysis_of_Buffer_Overflow_Attacks.html

带来火焰,但我会说任何足够大小的代码库都包含可能的explotable缓冲区溢出,无论执行环境或源语言如何。当然,一些语言和平台允许应用程序开发人员比其他人更容易“自己动手”,但这一切都归结为个人的愚蠢,项目复杂性,第三方代码的使用,然后总是有基础实现的漏洞。

缓冲区溢出仍然存在,这只是一个通过安全编程实践减轻暴露的问题,并且在发现它们以管理风险时,会仔细监控新漏洞。

一个很好的例子是,对于Web应用程序,所有设备和应用程序的网络实现中都存在溢出的可能性,这些设备和应用程序通过Internet处理您的字节。

考虑尝试破解服务器的客户端与尝试征服访问特定服务器的其他客户端的客户端的区别?

除了简单的“C”式溢出,开发人员无法遵循安全编程实践,还有隐藏的宝石,如整数溢出。

即使某个服务器主机环境已知高度稳定,它也无疑会利用数据库和其他操作系统设施,这些设施本身可能通过网络服务器进行利用。

当你接近它时,没有什么是安全的,这只是一个复杂的问题。

特定应用程序或服务器可以完全安全的唯一方法是通过勤奋的监控,以便在发现可疑行为时纠正问题。我非常怀疑沃尔玛或联邦快递或任何其他大公司都乐于宣传违规行为。相反,他们会监控,修复并继续前进。

甚至可以说SQL注入是缓冲区溢出的抽象形式,但您只需选择希望缓冲区使用特定字符结束的位置,然后提供您希望在正确位置执行的代码。 / p>

答案 1 :(得分:0)

他们倾向不会出现在网络应用中。 Google's Web Application Exploits and Defenses codelab有一个简短的部分,但没有证明:

  

此代码库不包括溢出漏洞,因为Jarlsberg是用Python编写的,因此不容易受到典型缓冲区和整数溢出问题的影响。 Python不允许您在数组的边界外读取或写入,并且整数不能溢出。虽然C和C ++程序最常见的是暴露这些漏洞,但其他语言并不是免疫的。例如,虽然Java旨在防止缓冲区溢出,但它会静默忽略整数溢出。

这实际上取决于您使用的语言是否可以缓冲区溢出。