本环境来自于<漏洞战争>
在命令行下用ovftool.exe打开poc.ovf,之后附加到OD中,可以看到栈空间已经被破坏了。
之后定位到错误点,可以看到此时ebp是被破坏掉的
当ret的时候发生的错误
之后通过不断调试,找到了更改EBP的地方,通过查找关键字符定位到POC数据(也可以通过winhex数一下)
%08x 的个数是 98 个,‘A’ 字符的个数是 26 个,%hn 之前的字符串长度为 (98 * 4 + 26) * 2 = 344 + 1 = 345
而%hn用的WORD类型,所以覆盖低地址的部分,345,所以这就构成了120345
漏洞利用:这里用的泉哥书中的进行分析
当执行到ret的时候,可以看到7852753D这个地址
跟过去之后发现7852753D是call esp
再次跟进之后就是Shellcode了
最后分析了一个poc文件,通过winhex定位到了
接下来我把这个跳转指令替换成了AAAA
可以看到变成了41414141,通过利用字符输出数量,在结合%n控制覆盖了返回地址