系统漏洞攻击:缓冲区溢出原理

时间:2022-11-21 01:44:51 作者:壹号 字数:3414字

网络,安全,案例

缓冲区溢出原理 认识缓冲区溢出 缓冲区溢出的为危害 缓冲区溢出的补救措施

网络,安全,案例

缓冲区溢出原理缓冲区溢出 缓冲区是内存中存放数据的地方。在程序试图将数据放到计 算机内存中的某一位置,但没有足够空间时会发生缓冲区溢 出。

网络,安全,案例

缓冲区溢出原理

网络,安全,案例

缓冲区溢出原理

网络,安全,案例

缓冲区溢出原理 缓冲区是程序运行时计算机内存中的一个连续的块,它保 存了给定类型的数据。问题随着动态分配变量而出现。为 了不用太多的内存,一个有动态分配变量的程序在程序运 行时才决定给他们分配多少内存。如果程序在动态分配缓 冲区放入太多的数据会有什么现象?

网络,安全,案例

缓冲区溢出原理 它溢出了,漏到了别的地方。一个缓冲区溢出应用程序使 用这个溢出的数据将汇编语言代码放到计算机的内存中, 通常是产生root权限的地方。单单的缓冲区溢出,并不会 产生安全问题。只有将溢出送到能够以root权限运行命令 的区域才行。这样,一个缓冲区利用程序将能运行的指令 放在了有root权限的内存中,从而一旦运行这些指令,就 是以root权限控制了计算机。总结一下上面的描述。

网络,安全,案例

缓冲区溢出原理

缓冲区溢出指的是一种系统攻击的手段,通过往程序的缓 冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏 程序的堆栈,使程序转而执行其它指令,以达到攻击的目 的。据统计,通过缓冲区溢出进行的攻击占所有系统攻击 总数的80%以上。造成缓冲区溢出的原因是程序中没有仔 细检查用户输入的参数。

网络,安全,案例

缓冲区溢出原理 缓冲区溢出就是在一个缓冲区里写入过多的数据。 那怎样利用呢?

网络,安全,案例

缓冲区溢出原理 example2.c ----------------------------------------------------------void function(char *str) { char buffer[16]; strcpy(buffer,str); } void main() { char large_string[256]; int i; for( i = 0; i < 255; i++) large_string[i] = 'A'; function(large_string); } ------------------------------------------------------------

网络,安全,案例

缓冲区溢出原理 缓冲区溢出的为危害 在当前网络与分布式系统安全中,被广泛 利用的80%以上都是缓冲区溢出,其中最 著名的例子是1988年利用fingerd漏洞的蠕 虫。。

…… 此处隐藏0字 ……

网络,安全,案例

缓冲区溢出原理 而缓冲区溢出中,最为危险的是堆栈溢出, 因为入侵者可以利用堆栈溢出,在函数返 回时改变返回程序的地址,让其跳转到任 意地址,带来的危害一种是程序崩溃导致 拒绝服务,另外一种就是跳转并且执行一 段恶意代码,比如得到shell,然后为所欲 为

网络,安全,案例

缓冲区溢出原理 缓冲区溢出的漏洞被发现到利用以来一直 都是网络安全领域的最大隐患,很多安全 人士均对这些漏洞做了仔细的研究,但是 缓冲区溢出的

完全防止往往因为这样那样 的人为或者其它的因素仍显得有点力不从 心。

网络,安全,案例

缓冲区溢出原理 正确的编写代码 非执行的缓冲区 检查数组边界 程序指针完整性检查