xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

多个堆栈保护机制保存基指针覆盖弱点


发布时间:2002-04-27
更新时间:2002-04-27
严重程度:
威胁程度:其它
错误类型:设计错误
利用方式:服务器模式

BUGTRAQ ID:4589

受影响系统
StackGuard StackGuard 2.0.1
StackShield StackShield 0.7 -beta
详细描述
目前存在多个应用层技术来保护堆栈溢出攻击。其中这些技术中存在几个弱点。

其中之一的漏洞存在于由StackGuard 和StackShield编译的程序中。

当调用函数引用其本地变量和参数时,它会基于基指针进行操作,根据操作执行的不同,可以允许攻击者写任意数据到内存任意位置。

StackGuard 2.0.1使用了固定值的canary,基于各种组合方法破坏保存的基指针并使固定值的canary允许缓冲溢出发生。

如果攻击者能够以某种方式嵌入固定值canary和返回地址,然后使用canary/返回地址相关的偏移地址来代替保存的基地址,StackGuard就会检查通过并允许返回到SHELLCODE中。

测试代码
尚无

解决方案
在StackGuard 3.0上得到修补。

相关信息
参考:http://online.securityfocus.com/advisories/4057