实验环境
推荐使用的环境 | 备注 | |
---|---|---|
操作系统 | Windows XP SP3 | |
虚拟机 | Vmware | |
调试器 | OD | |
反汇编器 | IDA Pro | |
漏洞软件 | VMware OVF Tool | 2.1.0-467744 |
动态分析
安装好打开PoC,崩溃处调试,eip已变成了0x0000000.
由于漏洞发生在栈上,因此使用页堆功能无法定位异常发生位置,可以根据上面命令行中输出的错误信息进行定位。
IDA反编译ovftool.exe,查找字符串Invalid value,显然是第二个结果。
动态在设置该字符串和设置该字符串的上一个函数的retn处打断点,在retn处的时候发现ebp=0x120345,ebp<esp。
0x0057eaf5处的mov eax,cx触发了断点。
栈回溯如下
IDA找到0x47EA31处。
这里的v23没有过滤,故而当输入参数含有控制符的时候就导致格式化字符串漏洞。
文章评论