欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

细说CVE-2010-2883从原理分析到样本构造

来源:本站整理 作者:佚名 时间:2019-06-06 TAG: 我要投稿

可能是各位大佬都比较忙的缘故,在学习了网上各种前辈们的漏洞报告之后,总感觉叙述的不够详细,小白理解起来较为困难。因此秉承着前人栽树后人浇水的原则,我也想尝试写一篇个人认为较为详细的漏洞分析,但由于水平有限不足之处请谅解。并借此记录下近日的学习成果。望各位不吝赐教!
 
漏洞信息
漏洞编号: CVE-2010-2883
复现环境:
操作系统 Windows XP SP3
虚拟机 Vmware 15 Pro
漏洞软件 Adobe Reader 9.3.4
漏洞简介: 在Adobe Reader和Acrobat 9.4之前的9.x版本中用于实现CoolType(清晰显示文本的字体还原技术)技术的库CoolType.dll中在解析TrueType字体文件中的SING表的uniqueName字段时调用的strcat函数未检查长度导致存在基于栈的缓冲区溢出漏洞。远程攻击者可构造恶意的SmartINdependent Glyphlets (SING)表修改内存数据从而执行任意代码。
 
定位漏洞
既然我们已经知道了产生漏洞的地方在于CoolType.dll,因此这里采用IDA直接静态分析。在Adobe Reader 9.3.4的安装目录下找到CoolType.dll动态链接库,用IDA载入。借助字符串来定位,在Strings窗口(Shift+F12)中搜索(Ctrl+F)SING关键词得到如下信息
.rdata:0819DB4C aSing           db 'SING',0             ; DATA XREF: sub_8015AD9+D2↑o
.rdata:0819DB4C                                         ; sub_803DCF9+7B↑o ...
.rdata:0819DB51                 align 4
选中aSing借助IDA强大的交叉引用功能(Ctrl+X),找出所有引用了aSing的地方。这里定位到0x0803DD74的位置
.text:0803DD74                 push    offset aSing   
.text:0803DD79                 push    edi
.text:0803DD7A                 lea     ecx, [ebp+108h+var_12C]
.text:0803DD7D                 call    sub_8021B06     
.text:0803DD82                 mov     eax, [ebp+108h+var_12C]
.text:0803DD85                 cmp     eax, esi
.text:0803DD85 ;   } // starts at 803DD53
.text:0803DD87 ;   try {
.text:0803DD87                 mov     byte ptr [ebp+108h+var_10C], 2
.text:0803DD8B                 jz      short loc_803DDC4
.text:0803DD8D                 mov     ecx, [eax]
.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+9C↑j
.text:0803DD9F                 add     eax, 10h
.text:0803DDA2                 push    eax             ; char *
.text:0803DDA3                 lea     eax, [ebp+108h+var_108]
.text:0803DDA6                 push    eax             ; char *
.text:0803DDA7                 mov     [ebp+108h+var_108], 0

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载