缓冲区溢出的原理:
通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的 。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数 。例如下面程序:
void function(char *str) {
char buffer[16];
strcpy(buffer,str);
}
上面的strcpy()将直接吧str中的内容copy到buffer中 。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错 。存在象strcpy这样的问题的标准函数还有strcat(),sprintf(),vsprintf(),gets(),scanf()等 。
文章插图
漏洞:
缓冲区溢出攻击的目的在于扰乱具有某些特权运行的程序的功能,这样可以使得攻击者取得程序的控制权,如果该程序具有足够的权限,那么整个主机就被控制了 。一般而言,攻击者攻击root程序,然后执行类似“exec(sh)”的执行代码来获得root权限的shell 。为了达到这个目的,攻击者必须达到如下的两个目标:
在程序的地址空间里安排适当的代码 。
通过适当的初始化寄存器和内存,让程序跳转到入侵者安排的地址空间执行 。
可以根据这两个目标来对缓冲区溢出攻击进行分类 。
以上内容参考:百度百科-缓冲区溢出
【缓冲区溢出的基本原理是什么】
推荐阅读
- 广海有什么好玩的地方
- 广告中有叫TVC的是什么意思
- 小青柑是哪里产的
- 广告学专业开设的专业课程有什么
- 广告性质的赞助支出如何税前扣除
- 广告品牌及营销三者之间的关系
- 广告脚本与广告文案的区别
- 广告公司需要怎么样的电脑配置
- 广告费允许税前扣除的比率是多少
- 广告创意带给消费者行为的作用