amliaW4.github.io

title: CVE-2010-3333 分析

date: 2018-04-26 19:07:31

categories:

环境

XP sp3

Microsoft Office Word 2003 SP3

Windbg

漏洞分析

CVE-2010-3333漏洞是一个栈溢出漏洞,该漏洞是由于Microsoft word在处理RTF数据的对数据解析处理错误,可被利用破坏内存,导致任意代码执行。

相关RTF可以参考《漏洞战争》。

我们使用MSF生产POC:

msf > use exploit/windows/fileformat/ms10_087_rtf_pfragments_bof 
msf exploit(windows/fileformat/ms10_087_rtf_pfragments_bof) > info 
msf exploit(windows/fileformat/ms10_087_rtf_pfragments_bof) > set target 6

打开 word 使用Windbg 附加进程,打开 ksf.rtf 文件会触发异常。

img-1

在将 [esi] 复制到 [edi] 时溢出到只读地址。

img-2

通过栈回溯可发现实在 0x30f0b5c2 函数 调用了溢出函数。img-3

img-4

仔细分析溢出函数,发现复制长度我们为栈上的值,我们可以控制。

img-5

img-6

2003 和 2007 的通用性

这样漏洞比价简单,有意思的关于 2003 与 2007 的通用性。

书中讲到是同时覆盖返回地址和SEH结构。

定位SEH可以使用MSF中的pattern_create和pattern_offset,《Exploit编写系列教程》有详细讲解。

img-7

由于office 存在内部异常处理 需要在溢出数据指定位置为改为0x00000000。

参考

《漏洞战争》