免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4921 | 回复: 6
打印 上一主题 下一主题

栈溢出攻击 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-29 18:02 |只看该作者 |倒序浏览
谁能给出点栈溢出的攻击方法,怎样才能定位入口地址。谢谢

论坛徽章:
0
2 [报告]
发表于 2010-12-29 19:27 |只看该作者
你把Linux的函数调用帧搞清楚就基本能知道栈溢出的攻击原理了
另外,现在的linux程序都有一定的防护,比如:Address space layout randomization

论坛徽章:
0
3 [报告]
发表于 2010-12-29 19:47 |只看该作者
网路蠕虫

论坛徽章:
0
4 [报告]
发表于 2010-12-29 22:39 |只看该作者
LZ研究这个干嘛...

论坛徽章:
0
5 [报告]
发表于 2010-12-30 09:03 |只看该作者

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
6 [报告]
发表于 2010-12-30 09:28 |只看该作者
学习了,现在搞溢出攻击容易不?

论坛徽章:
0
7 [报告]
发表于 2010-12-30 14:29 |只看该作者
本帖最后由 sunboxinan 于 2010-12-30 14:36 编辑

前段时间看深入理解计算机系统,做了字符串炸弹那个题,没有成功。在网上查了下

现代的gcc编译器有缓冲区溢出保护机制,会在栈底写上一个随机数,位于栈空间和返回地址之间,当函数退出的时候,会检查这个位置的数据是否还是原来写入的那个随机数,如果不是,说明栈溢出了,覆盖了那个随机数。这样就提供了一种缓冲区溢出保护的机制,当程序运行时,很难通过缓冲区溢出的方法攻击,因为即使你覆盖了,函数在退出的时候会检测出来。除非你知道运行时栈底那一个随机数到底是什么,然后用那个数来覆盖,这种方法可以,但是只能用一次,因为每次程序运行那个数字都会变。当然你可以用gdb调试,每次在溢出之前先查看一下那个值到底是啥。
这个机制并不能完全使程序免受缓冲区溢出攻击,但是无疑使攻击难度大大增加。
可以用选项 -fno-stack-protecto r禁用GCC的缓冲区溢出保护。

http://blog.csdn.net/zzmfish/archive/2009/12/20/5042231.aspx
http://www.cublog.cn/u3/103049/showart_2025757.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP