首页
社区
课程
招聘
[原创][推荐]CVE-2011-0104漏洞分析
2021-8-5 09:19 11759

[原创][推荐]CVE-2011-0104漏洞分析

2021-8-5 09:19
11759

一、漏洞信息

1. 漏洞简述
CVE-2011-0104是Excel在解析XLB文件造成的栈溢出漏洞
•漏洞名称:CVE-2011-0104栈溢出漏洞
•漏洞编号:CVE-2011-0104
•漏洞类型:栈溢出
•漏洞影响:任意代码执行
•利用难度:simple
•基础权限:不需要
2. 组件概述
excel表格,xlb文件是个设置文件
3. 漏洞利用
通过覆盖xlb文件的数据,在excel解析的时候造成栈溢出
4. 漏洞影响
操作系统:Windows XP SP3
漏洞文件:Office Excel 2003 SP3中文版
5. 解决方案
官网已经提供补丁,或者换最新版的软件
二、漏洞复现

 

1. 环境搭建
Windbg,OD
漏洞软件:Office Excel 2003 SP3中文版
2. 复现过程
首先运行excel.exe,加载并导入exploit.xlb文件,windbg加载运行触发异常

1
300e06f7 8908 mov  dword ptr [eax],ecx ds:0023:51455047=????????

有异常的是上面地址,那么载入一个正常文件追溯到函数调用处,
0X300E19DC即返回地址,通过这个返回地址可进行查找到函数调用处
函数调用
跟到返回地址的地方如下:

1
2
300E19D7    E8 D1EBFFFF     call EXCEL修?300E05AD
300E19DC    3BC3            cmp eax,ebx

之后在300E19D7处下断点,F7单步跟进,首先提高了0X60大小的栈空间
图片描述

 

在ESP设置一个内存写入的断点,看看是哪里进行了写入
图片描述

 

两次F9跟到这里,其实就是rep造成的溢出
图片描述

 

通过winhex对比成功发现数据
图片描述

 

之后根据返回地址找到,将其改为call esp
图片描述

 

通过查找call esp,将返回地址ESP替换即可
图片描述
直接esp+0X20到此处,此处填写shellcode即可,对照winhex,也就是shellcode需要在这填充
图片描述
但是在shellcode填充完之后,有一个错误,eax的地址无法写入,根据定位得知EBP+2C的位置是eax的内容,之后会访问这个地址进行写入,所以需要将此处地址改为可用的地址。
图片描述
更改为一个栈地址即可
图片描述
再次运行看一下ret的情况
图片描述
成功跳转到call esp处,现在esp栈顶就是shellcode
图片描述
最后shellcode成功执行
图片描述

 

五、参考文献
漏洞战争(P51)


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞2
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回