首页
社区
课程
招聘
[求助]关于 13.2.1动态调试 的溢出问题
2010-9-8 14:27 3933

[求助]关于 13.2.1动态调试 的溢出问题

2010-9-8 14:27
3933
小弟最近在看0day,但是"13.2.1 动态调试"(Page284) 这一小节中有一处不明白,就是在触发NetpwPathCanonicalize()函数漏洞的POC代码中,arg_1[0x320]和arg_4[0x100]这2个参数所占的栈空间总共也就0x420,比参数arg_2[0x440]的空间小,在经过
memset(arg_1, 0, sizeof(arg_1));
memset(arg_1, 'a', sizeof(arg_1) - 2);  //这里的字符应该没有越界吧
memset(arg_4, 0, sizeof(arg_4));
memset(arg_4, 'b', sizeof(arg_4) - 2);        //这里的字符应该没有越界吧
之后,直接调用(Trigger)(arg_1, arg_2, arg_3, arg_4, arg_5, 0);
为什么会溢出呢。

书上原话:"这段代码做的仅仅是转载存在漏洞的netapi32.dll,并调用其导出函数NetpwPathCanonicalize。在函数调用时,我们将arg_1和arg_4设置成很长的字符串,用以触发栈溢出。注意这个字符串以两个字节的NULL结束,这是因为NetpwPathCanonicalize将按照unicode来处理字节串"。
书上说把 arg_1和arg_4设置成很长的字符串 ,但是字符串也没越界啊

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 180
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hhstyle 2010-9-9 11:04
2
0
是我搞错了。。溢出不是产生在接收缓冲(arg_2),原来是暂存的0x414个字节。
游客
登录 | 注册 方可回帖
返回