博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
缓冲区溢出
阅读量:7294 次
发布时间:2019-06-30

本文共 769 字,大约阅读时间需要 2 分钟。

原理:

通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。

攻击者在通过超长的数据包发送覆盖了程序buffer的关键返回ret位置,导致CPU控制流的劫持,错误地把攻击者数据当作代码来执行

 

详细说明:

缓冲区是程序运行时计算机内存中的一个连续的块,它保存了给定类型的数据.问题随着动态分配变量而出现.为了不用太多的内存,一个有动态分配变量的程序在程序运行时才决定给他们分配多少内存.如果程序在动态分配缓冲区放入太多的数据会有什么现象?它溢出了,漏到了别的地方.一个缓冲区溢出应用程序使用这个溢出的数据将汇编语言代码放到计算机的内存中,通常是产生root权限的地方.单单的缓冲区溢出,并不会产生安全问题.只有将溢出送到能够以root权限运行命令的区域才行.这样,一个缓冲区利用程序将能运行的指令放在了有root权限的内存中,从而一旦运行这些指令,就是以root权限控制了计算机.
总结一下上面的描述.缓冲区溢出指的是一种系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的.据统计,通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上.

危害:

缓冲区溢出攻击,可以导致程序运行失败、系统关机、重新启动,或者执行攻击者的指令,比如非法提升权限,等操纵程序的内存中的内容。

解决:

代码->通过实现安全编码实践,解决安全问题的应用程序在开发和测试来预防。

 

另外,也可详细查看相关blog:

试了下,没看懂 =。=

还有:

转载于:https://www.cnblogs.com/ericazy/p/7088434.html

你可能感兴趣的文章
[数学建模(三)]遗传算法与旅行商问题
查看>>
Linux上文件恢复工具
查看>>
关于开发环境无法运行applet
查看>>
9 完整的用户注册登录实例
查看>>
1.AJAX简介
查看>>
MVC5-3 Result分析
查看>>
记SpannableString设多少span时注意事项
查看>>
iOS8.1 To iOS8.2
查看>>
C#中让窗体自动靠边隐藏
查看>>
多态基类的析构函数应该为虚函数
查看>>
数据结构之 循环表线性表
查看>>
python 实现进制转换(二进制转十进制)
查看>>
Scrum立会报告+燃尽图(十二月九日总第四十次):视频剪辑与用户反馈
查看>>
xlst
查看>>
修改PHP上传文件的大小限制(post)
查看>>
Tengine 添加第三方监控模块nginx-module-vts
查看>>
黑马程序员-面向对象-09天-4
查看>>
小强的HTML5移动开发之路(14)——Video标签详解
查看>>
大白话5分钟带你走进人工智能-第十八节逻辑回归之交叉熵损失函数梯度求解过程(3)...
查看>>
在wamp下安装bugfree
查看>>