专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
终码一生  ·  用好缓存的10条军规 ·  昨天  
终码一生  ·  用好缓存的10条军规 ·  昨天  
成飞资料库  ·  资源小程序备案教程 ·  2 天前  
成飞资料库  ·  资源小程序备案教程 ·  2 天前  
计算机与网络安全  ·  160页 全球AI投资趋势深度分析 ·  2 天前  
51好读  ›  专栏  ›  看雪学苑

CVE-2011- 0104 栈溢出漏洞在Excel 2003下利用分析

看雪学苑  · 公众号  · 互联网安全  · 2017-05-31 18:13

正文

请到「今天看啥」查看全文


First chance   exceptions are reported before any exception handling.

This exception   may be expected and handled.

eax=51453844   ebx=00000002 ecx=00000006 edx=3161feb0 esi=00000000 edi=00000400

eip=300ce361   esp=0013aa24 ebp=0013aa8c   iopl=0         nv up ei pl nz na pe nc

cs=001b  ss=0023    ds=0023  es=0023  fs=003b    gs=0000             efl=00010206

*** ERROR:   Symbol file could not be found.    Defaulted to export symbols for C:\Program Files\Microsoft   Office\OFFICE11\EXCEL.EXE -

EXCEL!Ordinal41+0xce361:

300ce361   8908            mov     dword ptr [eax],ecx  ds:0023:51453844=????????

0:000> kb

ChildEBP RetAddr  Args to Child

WARNING: Stack   unwind information not available. Following frames may be wrong.

0013aa8c 30424232 42414242 41385058 494a7542   EXCEL!Ordinal41+0xce361

0013aa90   42414242 41385058 494a7542   584b4c4b   EXCEL!Ordinal41+0x424232

0013aa94   41385058 494a7542   584b4c4b   30435451 0x42414242

0013aa98 494a7542 584b4c4b 30435451 50453043 0x41385058

运行excel.exe,然后用Immunity Debugger附加excel2003进程,按F9,使excel2003运行出现打开后的界面,打开exploit.xlb样本文件,打开后触发异常:


通过向上进行代码回溯分析,崩溃地址位于函数sub_300CE252:


然后,在0x300CE252下断点,并对栈顶下内存写入断点(此处的栈顶就是调用sub_300CE252函数时将返回地址压栈时的ESP值,即0x0013AA90):

按F9执行到0x300CE3C8,此处进行循环复制数据到栈上,导致溢出:

此时中断,查看寄存器值发现EBP=0013AA3B,EDI=0013AA9B,复制了0x60个字节:

根据《漏洞战争》P53和P54的分析,REP MOVS 操作的目的地址由ebp提供,由此得知,当复制0x60个字节时edi的值由于递增覆盖到了栈顶(0x0013AA90,此处在漏洞利用中应为“跳板地址”)。

单步执行到该段程序的末尾处Retn 0c处时,此时栈如图:

此时ESP值为0x001379EC。

通过向上回溯代码,发现该段函数开始于0x300CE380,因此定义该函数为sub_300CE380:

从Call Stack中可以看出,函数sub_300CE380被函数sub_306DF0DC调用:







请到「今天看啥」查看全文