吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9700|回复: 8
收起左侧

[漏洞分析] CVE-2010-2883漏洞分析与修复

[复制链接]
riusksk 发表于 2011-12-4 13:35
本帖最后由 riusksk 于 2011-12-4 13:40 编辑

【标题】:CVE-2010-2883漏洞分析与修复【作者】:riusksk(泉哥)
【主页】:http://riusksk.blogbus.com
【时间】:2011年10月3日

漏洞描述
      Adobe Reader的CoolType.dll库在解析字体文件SING表格中的uniqueName项时存在栈溢出漏洞,用户受骗打开了特制的PDF文件就可能导致执行任意代码。目前这个漏洞正在被多个恶意软件积极的用于挂马攻击。

漏洞分析
      用IDA反汇编CoolType.dll库,查看字符串可发现“SING”字体,直接定位进去即可查看到该库对sing表格的解析方式,主要是strcat造成的溢出漏洞:

.text:0803DCF9                 push    ebp
.text:0803DCFA                 sub     esp, 104h       ; 分配栈空间0x104
.text:0803DD00                 lea     ebp, [esp-4]    ; 后面的strcat会把执行结果保存在ebp中
.text:0803DD04                 mov     eax, dword_8230FB8
.text:0803DD09                 xor     eax, ebp
.text:0803DD0B                 mov     [ebp+104h], eax
.text:0803DD11                 push    4Ch
.text:0803DD13                 mov     eax, offset loc_8184A54
.text:0803DD18                 call    __EH_prolog3_catch
.text:0803DD1D                 mov     eax, [ebp+arg_C]
.text:0803DD23                 mov     edi, [ebp+arg_0]
.text:0803DD29                 mov     ebx, [ebp+arg_4]
.text:0803DD2F                 mov     [ebp+var_28], edi
.text:0803DD32                 mov     [ebp+var_30], eax
.text:0803DD35                 call    sub_804172C
.text:0803DD3A                 xor     esi, esi
.text:0803DD3C                 cmp     dword ptr [edi+8], 3
.text:0803DD40                 mov     [ebp+var_4], esi
.text:0803DD43                 jz      loc_803DF00
.text:0803DD49                 mov     [ebp+var_1C], esi
.text:0803DD4C                 mov     [ebp+var_18], esi
.text:0803DD4F                 cmp     dword ptr [edi+0Ch], 1
.text:0803DD53                 mov     byte ptr [ebp+var_4], 1
.text:0803DD57                 jnz     loc_803DEA9
.text:0803DD5D                 push    offset aName    ; "name"
.text:0803DD62                 push    edi
.text:0803DD63                 lea     ecx, [ebp+var_1C]
.text:0803DD66                 mov     [ebp+var_11], 0
.text:0803DD6A                 call    sub_80217D7
.text:0803DD6F                 cmp     [ebp+var_1C], esi
.text:0803DD72                 jnz     short loc_803DDDD
.text:0803DD74                 push    offset aSing    ; "SING"
.text:0803DD79                 push    edi
.text:0803DD7A                 lea     ecx, [ebp+var_24] ; 指向sing表入口
.text:0803DD7D                 call    sub_8021B06     ; 处理SING表
.text:0803DD82                 mov     eax, [ebp+var_24]
.text:0803DD85                 cmp     eax, esi        ; 判断是否为空
.text:0803DD87                 mov     byte ptr [ebp+var_4], 2
.text:0803DD8B                 jz      short loc_803DDC4 ; 这里不跳转
.text:0803DD8D                 mov     ecx, [eax]      ; 字体资源版本号,这里为1.0版本,即00 10 00 00
.text:0803DD8F                 and     ecx, 0FFFFh
.text:0803DD95                 jz      short loc_803DD9F ; 这里跳转
.text:0803DD97                 cmp     ecx, 100h
.text:0803DD9D                 jnz     short loc_803DDC0
.text:0803DD9F
.text:0803DD9F loc_803DD9F:                            ; CODE XREF: sub_803DCF9+9Cj
.text:0803DD9F                 add     eax, 10h        ; 相对sing表入口偏移0x10处找到uniqueName
.text:0803DDA2                 push    eax             ; uniqueName域
.text:0803DDA3                 lea     eax, [ebp+0]
.text:0803DDA6                 push    eax             ; 目的地址是一段固定大小的栈空间
.text:0803DDA7                 mov     byte ptr [ebp+0], 0
.text:0803DDAB                 call    strcat          ; 造成溢出!!!

漏洞修复
官方在修补该漏洞时,添加对字符串长度的检测与限制,这里它用sub_813391E函数代替了原来的strcat函数: 1.jpg

跟进sub_813391E函数:
2.jpg


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2011-12-4 13:42
我滴个神呢,泉哥你这是从哪复制过来的...
 楼主| riusksk 发表于 2011-12-4 13:45
Hmily 发表于 2011-12-4 13:42
我滴个神呢,泉哥你这是从哪复制过来的...

我的博客扔过来的,呵呵
willJ 发表于 2011-12-8 14:26
akenny 发表于 2012-2-5 00:22
52和泉哥的博客都看滴,膜拜ing
Mr丶Yang 发表于 2012-2-7 20:02
高手,我等的楷模~~~~~~~
jinxuelong 发表于 2012-2-8 09:11
谢谢  学习了
超赢 发表于 2012-2-9 14:52
多谢分享
头像被屏蔽
苏烟式 发表于 2014-7-21 03:35
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 07:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表