破壳企业应急安全(防御方向)课程 应急响应 勒索病毒 挖矿木马 DDOS 日志分析

金山wps加载OLE对象之内存未初始化第一弹

编号139662
Urlhttp://www.wooyun.org/bug.php?action=view&id=139662
漏洞状态厂商已经确认
漏洞标题金山wps加载OLE对象之内存未初始化第一弹
漏洞类型远程代码执行
厂商金山软件集团
白帽子血池摇摆
提交日期2015-09-08 18:01:00
公开日期2015-12-07 19:38:00
修复时间(not set)
确认时间2015-09-08 00:00:00
Confirm Spend0
漏洞标签第三方不可信程序 客户端安全
关注数0
收藏数0
白帽评级
白帽自评rank15
厂商评级
厂商评rank10
漏洞简介
wps在加载mdt2dd.dll时候由于未初始化内存导致可以挟持eip.(需要系统有这个控件,例如VC6.0)
漏洞细节

QQ图片20150908094618.png


申请内存,这是初始化之前的内存布局

QQ图片20150908094854.png


内存初始化后,可以看到,部分内存没有初始化,特别是esi+0x98的地方(画横线地方)(esi=图一的eax),还是刚申请内存的内容,而这里等于0x006e006f.

QQ图片20150908095103.png


然后稍后从这里取出虚函数表(esi=图一的eax),再call虚函数,导致crash.
利用方法:利用heap feng shui技术布置wps的内存,然后控制未初始化的内存地方,也就是0x006e006f这里,在crash的地方就可以挟持eip.

POC

QQ图片20150908095343.png

修复方案

参考微软做法,对加载的ole对象进行判断,不是ole对象的不加载.

状态信息 2015-09-08: 细节已通知厂商并且等待厂商处理中
2015-09-08: 厂商已经确认,细节仅向厂商公开
2015-09-11: 细节向第三方安全合作伙伴开放
2015-11-02: 细节向核心白帽子及相关领域专家公开
2015-11-12: 细节向普通白帽子公开
2015-11-22: 细节向实习白帽子公开
2015-12-07: 细节向公众公开
厂商回复感谢提交
回应信息危害等级:中漏洞Rank:10 确认时间:2015-09-08 19:37
Showing 1-2 of 2 items.
评论内容评论人点赞数评论时间

学习学习~

gainover02015-09-11 22:51:00

火钳留名,分析二进制的人都好可怕!

牛 小 帅02015-09-08 18:28:00