-
-
[原创]cve-2012-0158漏洞分析与利用
-
发表于:
2020-3-1 10:38
6188
-
Metasploit
https://www.exploit-db.com/
https://www.securityfocus.com
四:漏洞复现:
首先启动WORD,然后打开OD,附加WORD;
然后用WORD打开poc文件,此时会触发漏洞,观察OD;此时eip已被修改位41414141,观察堆栈情况,可以看出栈中的函数返回地址被修改位41414141;堆栈上方观察到一个来自MSCOMCTL模块的地址,反汇编窗口跟随查看;
根据反汇编窗口函数指令,找到函数起始位置下断点,然后F8动态调试,同时观察堆栈情况,找到触发栈溢出的指令或Call的调用;
经过F8动态调试分析,发现执行完CALL MSCOMCTL.275C876D 函数后,堆栈中函数返回地址被修改,说明这个函数内部触发了栈溢出;
用010Editor打开poc文件定位到414141位置;并结合OD的堆栈情况和IDA对
MSCOMCTL.275C876D 函数的分析,可以看出poc文件中的8282是缓冲区长度。此值设置过大导致下面调用qmemcpy函数发生溢出;
五:漏洞利用
我们将上述41414141改为jmp esp指令的地址,同时调用溢出函数的函数平衡堆栈时有ret 8,所以shellcode的起始位置应如下图所示:
接下来用WinDbg通过指令“!py mona.py jmp -r esp”来搜索合适的跳板指令;如图所示,这里我们选择0x729a0535作为跳板指令;
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)