安全科普
缓冲区溢出
时间:2001-03-21
早期的缓冲区溢出程序功能比较简单,往往是仅仅(通过执行 /bin/sh) 获得一个 shell 。但是现今的缓冲区溢出程序已具备更多样化的方法, 如绕过过滤器限制、建立套接字、突破chroot等等。这里我们主要介绍基 于(intel x86)Linux下缓冲区溢出编程中一些较为高级的使用技巧。 2.预备知识 你必须了解汇编语言、C语言还有Linux。当然,你还必须知 道缓冲区溢出是怎么一回事。我们站点上有关于缓冲溢出的机理分析可供 你参考。你也可以从phrak杂志的49-14找到有关的缓冲区溢出的的资料 (英文)。 3.绕过过滤器限制 许多程序存在缓冲区溢出问题。但是为什么 并非所有的缓冲区溢出程序都能被用于获得shell 呢?这是因为即使某个 程序具备了缓冲区溢出的条件,也许仍然很难攻击成功。在许多情况下是 由于程序过滤了一些字符或者把一些字符转变为另一些字符。如果一个程 序过滤了所有的非打印字符,溢出漏洞就几乎不可利用了。但如果程序只 过滤了部分的字符,那你可以通过编写巧妙的缓冲区溢出代码来绕过通过 这些过滤机制.