免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: mik
打印 上一主题 下一主题

利用堆空间作编译器试验以及对缓冲区溢出的措施(一) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-08-17 09:45 |只看该作者
原帖由 mik 于 2008-8-17 09:31 发表

stackguard 应该用什么参数来产生?
cookie 应该是一个整型值,不应是个串。cookie 本身就是为了防止缓冲区溢出,有 '\0' 是多余的。



好像不需要指定什么参数让gcc产生吧,这些gcc是被修改过的。

'\0'好像不一定多于吧?比如我们有个函数调用了strcpy,正好这个strcpy会产生缓冲区溢出,如果攻击者计算出了那个cookie值的话,有'\0'和没有'\0'是不同的。

论坛徽章:
0
12 [报告]
发表于 2008-08-17 10:00 |只看该作者
原帖由 jamesr 于 2008-8-17 09:43 发表
gcc果然有溢出保护:
gcc -fstack-protector-all -Wstack-protector yourfile.c
写了一个最简单的测试:

#include
int main()
{
        char str[3];
        strcpy(str,"hello";
        return ...


果然有此项功能。
但是,貌似cookie不能做随机

论坛徽章:
0
13 [报告]
发表于 2008-08-17 10:06 |只看该作者
原帖由 bobozhang 于 2008-8-17 09:45 发表



好像不需要指定什么参数让gcc产生吧,这些gcc是被修改过的。

'\0'好像不一定多于吧?比如我们有个函数调用了strcpy,正好这个strcpy会产生缓冲区溢出,如果攻击者计算出了那个cookie值的话,有'\0'和没 ...


好的cookie值是个随机性的,微软的cookie值这一点做得比较好,每调用一次cookie都会不同,要计算这个cookie 不那么容易。

话说回来,cookie 技术也不是什么保险的措施。绕过cookie值是完全可以做到的。

论坛徽章:
0
14 [报告]
发表于 2008-08-17 10:16 |只看该作者
原帖由 mik 于 2008-8-17 10:06 发表


好的cookie值是个随机性的,微软的cookie值这一点做得比较好,每调用一次cookie都会不同,要计算这个cookie 不那么容易。

话说回来,cookie 技术也不是什么保险的措施。绕过cookie值是完全可以做到的。


嗯,在有些场合是可以绕过的,但有些场合是绝对绕不过去的

论坛徽章:
0
15 [报告]
发表于 2008-08-17 11:29 |只看该作者
原帖由 mik 于 2008-8-17 10:06 发表


好的cookie值是个随机性的,微软的cookie值这一点做得比较好,每调用一次cookie都会不同,要计算这个cookie 不那么容易。

话说回来,cookie 技术也不是什么保险的措施。绕过cookie值是完全可以做到的。


绕过cookie值?最好还是保留,cookie 技术虽然不是什么保险的措施,但通过cookie 技术能
使代码更稳定

论坛徽章:
38
2017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:2720周年集字徽章-周	
日期:2022-01-13 15:12:33
16 [报告]
发表于 2008-08-17 11:50 |只看该作者
研究之前需要对当前的技术有充分的了解.

论坛徽章:
0
17 [报告]
发表于 2008-08-17 17:04 |只看该作者
security cookie 是windows xp sp2和win 2003 和以后的版本才引入的,而且windows2003
中 跟 windows2003 spx(x>=1) 的保护细节也有些区别.

继续关注大家对linux和windows 下堆栈缓冲区溢出保护机制的观点.

论坛徽章:
0
18 [报告]
发表于 2008-08-17 18:23 |只看该作者
原帖由 bobozhang 于 2008-8-17 10:16 发表


嗯,在有些场合是可以绕过的,但有些场合是绝对绕不过去的


能否举例说明"但有些场合是绝对绕不过去的" 的观点.

论坛徽章:
0
19 [报告]
发表于 2008-08-17 18:27 |只看该作者
不懂,学习了

论坛徽章:
0
20 [报告]
发表于 2008-08-17 19:11 |只看该作者
原帖由 system888net 于 2008-8-17 18:23 发表


能否举例说明"但有些场合是绝对绕不过去的" 的观点.


我说绕不过是指攻击者无法成功攻击

比如一个简单的如下程序在一个用cookie保护的系统上,我想没人能够成功利用这个缓冲区溢出而攻击吧

int main(int argc, char *argv[])
{
        char        buf[8];

        strcpy(buf, argv[1]);

        return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP