很久的笔记了,拿出来给大家看看。
Ms06-040本地溢出实验
执行POC代码后载入olly发现ESP,EIP被溢出为61616161. 如图:
。于是载入POC编译好的程序观察溢出细节:
由于我们已经知道出错的函数点,直接去函数点下端观察:
看到大量的字符b被写入栈中,而且在跟踪时还能看到其实b数据的规定长度是127,而unicode是256。继续:
然后开始写入\字符(\x005c---unicode),继续:
准备开始覆盖字符a了.:
字符a成功覆盖进栈中:
可以看到ebp与ebp+4的地方都被覆盖成61616161,nice :) .
我门F8继续到执行return后就如图一样ebp,eip都成61616161.
与是构造代码就出来了.
Shellcode+nop+90+jmp ecx(EIP) //查到CALL ECX的地址是751852f9
结果:
另外再来看看shellcode执行情况:
可以看到执行到return时.ecx=0012f290(ebp-414),正是覆盖的shellcode起始地址.且在内存中也能看到return已被751852f9(call ecx)覆盖.
posted on 2009-11-06 10:05
Vhk 阅读(344)
评论(0) 编辑 收藏 引用 所属分类:
0day