实验环境
| 推荐使用的环境 | 备注 | |
|---|---|---|
| 操作系统 | 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没有过滤,故而当输入参数含有控制符的时候就导致格式化字符串漏洞。
文章评论