西西河

主题:如何用绿坝养肉鸡(一) -- 代码ABC

共:💬168 🌺312 🌵1
全看分页树展 · 主题 跟帖
家园 简单原理

缓冲区溢出允许攻击者根据需要修改某个或某几个特定地址之后的内容,而这些修改原本是无法做到的。于是如果能溢出的缓冲区如果恰好在一些重要位置,比如:某些函数附近,那么攻击者就可以修改这些函数的代码从而执行自己需要的指令。

比较常见的情况是函数内的自动变量溢出,由于堆栈是向下生长的,和溢出方向正好相反,所以溢出的内容可以覆盖函数的返回地址,攻击者就可以控制函数返回时的执行内容。

当然做到这种攻击需要有几个条件:

1、找到溢出的地方(已经找到至少一处)

2、研究该溢出函数的代码(这个程序是可以下载的),不需要反编译,研究其汇编代码即可(这是黑客的基本功)

3、构造适合的溢出数据。

其实缓冲区溢出并不奇怪,高手也会犯这种错误。如果去看各大厂家的产品安全报告可以发现缓冲区溢出漏洞占全部安全漏洞的7成以上。之所以对这个软件的制作团队极尽嘲笑,有两个原因:第一个原因是被我发现的这种类型的漏洞完全可以避免,在水准程序员中是一个常识。第二个原因是这个产品早在2004年就写出来了,还获得N多国家荣誉,5年后这个明显错误居然没有发现。我真是佩服得五体投地。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河