溢出攻击缓冲区溢出攻击的原理是什么?

溢出攻击  时间:2021-07-28  阅读:()

缓冲区溢出攻击的6.防范方法

有四种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响。

1、通过操作系统使得缓冲区不可执行,从而阻止攻击者植入攻击代码。

2、强制写正确的代码的方法。

3、利用编译器的边界检查来实现缓冲区的保护。

这个方法使得缓冲区溢出不可能出现,从而完全消除了缓冲区溢出的威胁,但是相对而言代价比较大。

4、一种间接的方法,这个方法在程序指针失效前进行完整性检查。

虽然这种方法不能使得所有的缓冲区溢出失效,但它能阻止绝大多数的缓冲区溢出攻击。

分析这种保护方法的兼容性和性能优势。

非执行的缓冲区 通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行被植入被攻击程序输入缓冲区的代码,这种技术被称为非执行的缓冲区技术。

在早期的Unix系统设计中,只允许程序代码在代码段中执行。

但是Unix和MS Windows系统由于要实现更好的性能和功能,往往在数据段中动态地放入可执行的代码,这也是缓冲区溢出的根源。

为了保持程序的兼容性,不可能使得所有程序的数据段不可执行。

但是可以设定堆栈数据段不可执行,这样就可以保证程序的兼容性。

Linux和Solaris都发布了有关这方面的内核补丁。

因为几乎没有任何合法的程序会在堆栈中存放代码,这种做法几乎不产生任何兼容性问题,除了在Linux中的两个特例,这时可执行的代码必须被放入堆栈中: ⑴信号传递 Linux通过向进程堆栈释放代码然后引发中断来执行在堆栈中的代码来实现向进程发送Unix信号。

非执行缓冲区的补丁在发送信号的时候是允许缓冲区可执行的。

⑵GCC的在线重用 研究发现在堆栈区里放置了可执行的代码作为在线重用之用。

然而,关闭这个功能并不产生任何问题,只有部分功能似乎不能使用。

非执行堆栈的保护可以有效地对付把代码植入自动变量的缓冲区溢出攻击,而对于其它形式的攻击则没有效果。

通过引用一个驻留的程序的指针,就可以跳过这种保护措施。

其它的攻击可以采用把代码植入堆或者静态数据段中来跳过保护。

扩展资料: 原理 通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。

造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。

例如下面程序: void function(char*str){char buffer[16];strcpy(buffer,str);} 上面的strcpy()将直接把str中的内容copy到buffer中。

这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。

存在像strcpy这样的问题的标准函数还有strcat()、sprintf()、vsprintf()、gets()、scanf()等。

当然,随便往缓冲区中填东西造成它溢出一般只会出现分段错误(Segmentation fault),而不能达到攻击的目的。

最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。

如果该程序属于root且有suid权限的话,攻击者就获得了一个有root权限的shell,可以对系统进行任意操作了。

缓冲区溢出攻击之所以成为一种常见安全攻击手段其原因在于缓冲区溢出漏洞太普遍了,并且易于实现。

而且,缓冲区溢出成为远程攻击的主要手段其原因在于缓冲区溢出漏洞给予了攻击者他所想要的一切:植入并且执行攻击代码。

被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。

在1998年Lincoln实验室用来评7a686964616fe78988e69d8331333431363566估入侵检测的的5种远程攻击中,有2种是缓冲区溢出。

而在1998年CERT的13份建议中,有9份是是与缓冲区溢出有关的,在1999年,至少有半数的建议是和缓冲区溢出有关的。

在ugtraq的调查中,有2/3的被调查者认为缓冲区溢出漏洞是一个很严重的安全问题。

缓冲区溢出漏洞和攻击有很多种形式,会在第二节对他们进行描述和分类。

相应地防卫手段也随者攻击方法的不同而不同,将在第四节描述,它的内容包括针对每种攻击类型的有效的防卫手段。

参考资料: 百度百科——缓冲区溢出攻击

缓冲区溢出攻击的原理是什么?

因为调用函数的过程大致是 1:将参数从右到左压入堆栈 2:将下一条指令的地址压入堆栈 3:跳进函数出 4push ebp保存ebp的值 5:子函数开辟内存空间(如sub esp,1024)6mov ebp,esp由ebp操纵堆栈 。







但是当你的临时变量的大小成功了5处开辟的内存 就会覆盖到后面的返回地址 当函数执行完后就会 跳转到 返回地址 处执行 而你可以将返回地址 覆盖成你的 代码(shellcode)处的地址 这样 返回时就会执行你的代码了 当然由于你的shellcode地址不固定 这么利用几乎是不可能的 你可以 jmp esp 或 利用seh链执行你的shellcode 这些你可以百度一下 或者到 看雪论坛 去看一下

FBICDN,0.1元解决伪墙/假墙攻击,超500 Gbps DDos 防御,每天免费流量高达100G,免费高防网站加速服务

最近很多网站都遭受到了伪墙/假墙攻击,导致网站流量大跌,间歇性打不开网站。这是一种新型的攻击方式,攻击者利用GWF规则漏洞,使用国内服务器绑定host的方式来触发GWF的自动过滤机制,造成GWF暂时性屏蔽你的网站和服务器IP(大概15分钟左右),使你的网站在国内无法打开,如果攻击请求不断,那么你的网站就会是一个一直无法正常访问的状态。常规解决办法:1,快速备案后使用国内服务器,2,使用国内免备案服...

硅云香港CN2+BGP云主机仅188元/年起(香港云服务器专区)

硅云怎么样?硅云是一家专业的云服务商,硅云的主营产品包括域名和服务器,其中香港云服务器、香港云虚拟主机是非常受欢迎的产品。硅云香港可用区接入了中国电信CN2 GIA、中国联通直连、中国移动直连、HGC、NTT、COGENT、PCCW在内的数十家优质的全球顶级运营商,是为数不多的多线香港云服务商之一。目前,硅云香港云服务器,CN2+BGP线路,1核1G香港云主机仅188元/年起,域名无需备案,支持个...

HostKvm 黑色星期五香港服务器终身六折 其余机房八折

HostKvm商家我们也不用多介绍,这个服务商来自国内某商家,旗下也有多个品牌的,每次看到推送信息都是几个服务商品牌一起推送的。当然商家还是比较稳定的,商家品牌比较多,这也是国内商家一贯的做法,这样广撒网。这次看到黑五优惠活动发布了,针对其主打的香港云服务器提供终身6折的优惠,其余机房服务器依然是8折,另还有充值50美元赠送5美元的优惠活动,有需要的可以看看。HostKvm是一个创建于2013年的...

溢出攻击为你推荐
android半透明如何实现Android透明导航栏excel2003官方microsoft office 2003下载Costco茅台被抢光Costco在中国大陆第一家店开业首日被挤爆,为什么人们都特别青睐洋货?联通玩电信游戏关于联通到底能不能去电信区玩游戏。。。。新浪短网址链接生成新浪微博怎么发图文带短连接连接到自己的网站?湖北健康码转码申请个人健康随身绿色码怎么申请?微信小程序开发技术微信小程序开发需要什么技能跟技术?hub和路由器的区别HUB与路由器一样吗?不一样的话功能上有何区别?集线器的功能是什么?免费思维导图软件用的比较好的思维导图软件是那个?qa探针lQC和QA的区别是什么啊
网站域名空间 顶级域名 com域名 长沙服务器租用 xenvps 汉邦高科域名申请 duniu 联通c套餐 新世界电讯 申请空间 网站被封 免费ftp空间申请 java空间 免费全能空间 美国十次啦服务器 hostker 33456 七夕快乐英语 万网空间管理 lick 更多