-
-
[原创]CVE-2010-3333漏洞分析与利用
-
发表于:
2018-8-16 21:45
8583
-
这段时间在学漏洞分析,主要是参考泉哥的《漏洞战争》分析漏洞,本文分析的漏洞相对来说比较简单,只适合跟我一样想入门漏洞分析的菜鸟看。本人水平也非常不足,如果有什么错误之处还请大佬们不吝指教~
Microsoft Office Word 2003中的MSO.dll库在解析RTF文档的绘图pFragments属性时完全信任其数据,未做任何检查便将数据复制到栈中,存在了栈溢出的可能,导致用户打开精心构造的RTF文件时就有可能导致执行任意代码。
用Metasploit生成测试样本msf.rtf,运行WinDbg附加Word 2003,打开测试样本,WinDbg捕获异常,循环赋值内存数据到栈空间时,未检测复制的内存大小,导致覆盖到edi(0x130000)开始的不可写页面,触发异常的指令位于30e9eb88,当前栈已被样本生成的垃圾数据覆盖。
在30e9eb88处下断,重新打开测试样本,断下来后通过kb指令得到的信息进行回溯,结合IDA,可知调用函数及其执行流程:30f4cc5d->30f4cc93 call 30e9eb62->30e9eb88。
通过跟踪分析可发现,复制的数据大小由样本中的某一处决定,如下面两张图,前面的4在后面的计算中会变成0,并且将c8ac除以4(因为操作的大小为DWORD).
为了确定该栈溢出漏洞能劫持程序运行流程,自己构造一个长度偏小(防止触发访问异常)但又能覆盖返回地址的测试样本,如下:
打开该样本,WinDbg捕获异常,eip已被改为111111,至此我们可以确定该栈溢出漏洞可被利用。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2018-8-16 21:47
被RNGorgeous编辑
,原因: 排版问题