这种情况还是会有的。比如,在开辟了栈空间后(sub esp xxx),程序进行数据拷贝之前,在栈顶附近加了异常处理作为新的seh0,所以会出现 被覆盖的内容在seh0下面的这种情况。一般会有几种结果,一是直接覆盖到栈的最底端,出现异常,这时候seh0会对异常进行处理,而我遇到的这个情况 seh0刚好能够处理这个异常,所以我没办法控制;二是没有覆盖到出现异常的情况,这时函数会返回,但在返回前会检查stack cookie,但是由 于stack cookie被覆盖了,我还是无法控制eip;我遇到的就是以上这两种情况,当然,如果能出现better0332 所说的seh0没 有正确处理也还是有机会的。不知道在前两种情况下有没有利用的方法?
On 9月9日, 上午9时20分, xqx <[EMAIL PROTECTED]> wrote: > 开辟栈空间一般是sub esp xxx,也就是说是往低地址方向开,也就是在seh 0的上面(按楼主的图),怎么会出现楼主所说的那种情况? > > On 9月8日, 下午8时43分, qqbb <[EMAIL PROTECTED]> wrote: > > > > > 确实有这种情况啊,比如下面这种情况: > > esp->| 低地址 | > > | ... | > > | seh 0 | > > | ... | > > |局部变量 | > > | ... | > > | ... | > > | cookie | > > | ebp | > > | eip | > > | ... | > > | 高地址 | > > > 如果局部变量部分溢出了,就是我说的那种情况,seh0没有被覆盖。所以想通过覆盖seh的方法利用是行不通的,而ebp前面有安全cookie,在函 > > 数返回前会做检查,也没法控制eip了。 > > > On 9月8日, 下午5时57分, "better0332" <[EMAIL PROTECTED]> wrote: > > > > 这种事情很少发生吧,一般在栈底附近,怎么可能比栈顶还低 > > > > ----- Original Message ----- > > > From: "qqbb" <[EMAIL PROTECTED]> > > > To: "Ph4nt0m" <[email protected]> > > > Sent: Monday, September 08, 2008 3:19 PM > > > Subject: [Ph4nt0m] 关于stack security cookie的问题 > > > > > 请教各位,如果栈溢出时存在security cookie,而seh链上的第一个节点在可覆盖内容的栈低地址方向,也就是说无法覆盖fs:[0],这 > > > > 种情况下还有利用的方法吗?- 隐藏被引用文字 - > > > > - 显示引用的文字 -- 隐藏被引用文字 - > > - 显示引用的文字 - --~--~---------~--~----~------------~-------~--~----~ 要向邮件组发送邮件,请发到 [email protected] 要退订此邮件,请发邮件至 [EMAIL PROTECTED] -~----------~----~----~----~------~----~------~--~---

