office(CVE-2012-0158)漏洞分析报告
2019/9/12
1.漏洞复现
①发现崩溃
②找到漏洞所在的函数,下断点,重新跑起来,单步调试,找到栈被改写的地方
③分析该函数
把MSCOMCTL拖入IDA,查看该函数代码
④查看调用栈,回溯。
先找到会被覆盖的返回地址的地址,再查看它是如何被覆盖的
找到触发漏洞的函数,查看它的参数,触发漏洞的指针是它的第一个参数
进入函数,找到触发漏洞的语句
可以看出,向一个四字节的局部变量中复制大量数据,导致栈溢出,覆盖了局部变量所属函数的返回地址,从而引发了漏洞。
2.漏洞利用
①原理分析
经分析,漏洞数据传入靠一个函数,它被调用了两次。
第一次:先获取文件中保存的字节数(0xC),将它与传入的参数作对比,如果相等,就复制该字节数(0xC)的数据出来。
第二次:将第一次提取的数据当做参数,从文件取出4字节数据与参数作比较,如果相等,就复制参数数值大小的字节数。
sub_275C876D函数调用两次
第一次复制
只要文件中保存的两次用来比较的数值(读取的字节数)相等,且大于等于4,必然产生漏洞,而且非常好利用,只需要一个jmp esp 指令就行了
②shellcode
- 在模块中找jmp esp 的地址,最好是没有各种保护并且是系统内置
我选择immunityDebugger!找到符合条件的MSVBVM60.DLL
在模块中找jmp esp 地址,属性要是可读可执行,刚好有个0x729a0535
将41414141换成jmp esp地址,由于函数最后有ret 8,所以空八字节,加入shellcode就行了,读取大小随便写,简直是为所欲为。
Poc文件
office(CVE-2012-0158)漏洞分析报告的更多相关文章
- CVE-2012-0158 漏洞分析报告
Office 2003 sp3(CVE-2012-0158)漏洞分析报告 软件名称:Office 2003 sp3 软件版本:2.0 漏洞模块:MSCOMCTL.ocx 模块版本:2.0.0. ...
- CVE-2011-0104 Microsoft Office Excel缓冲区溢出漏洞 分析
漏洞简述 Microsoft Excel是Microsoft Office组件之一,是流行的电子表格处理软件. Microsoft Excel中存在缓冲区溢出漏洞,远程攻击者可利用此 ...
- WiFi网络WPA2 KRACK漏洞分析报告
作者:东帆@阿里安全技术平台团队 -------- 0x00 漏洞概述 安全研究员Mathy Vanhoef发现的WPA2协议的KRA(Key Reinstallation Attacks)漏洞, ...
- Android APP通用型拒绝服务、漏洞分析报告
点评:记得曾经有段时间很多SRC平台被刷了大量APP本地拒绝服务漏洞(目前腾讯金刚审计系统已经可检测此类漏洞),移动安全团队发现了一个安卓客户端的通用型拒绝服务漏洞,来看看他们的详细分析吧. 0xr0 ...
- Intel CPU 漏洞分析
Intel CPU漏洞分析报告 预备知识 存储分级 由于计算机存储分级的特性(第一级:寄存器,第二级:高速缓存,第三级:内存,第四级:磁盘),每一级之间的访问速度差距高达数量级.所以处理器会将用到的数 ...
- CVE漏洞分析
分析cve-2018-9489漏洞和download content provider(CVE-2018-9468, CVE-2018-9493, CVE-2018-9546), 每人至少选择一个漏洞 ...
- Google发布SSLv3漏洞简要分析报告
今天上午,Google发布了一份关于SSLv3漏洞的简要分析报告.根据Google的说法,该漏洞贯穿于所有的SSLv3版本中,利用该漏洞,黑客可以通过中间人攻击等类似的方式(只要劫持到的数据加密两端均 ...
- cve-2010-3333 Microsoft Office Open XML文件格式转换器栈缓冲区溢出漏洞 分析
用的是泉哥的POC来调的这个漏洞 0x0 漏洞调试 Microsoft Office Open XML文件格式转换器栈缓冲区溢出漏洞 Microsoft Office 是微软发布的非常流行的办公 ...
- CVE-2012-0158:Microsoft Office MSCOMCTL.ocx 栈溢出漏洞调试分析
0x01 Lotus Blossom 行动 在 2015 年 6 月,国外安全厂商 Palo Alto Networks 的威胁情报团队 Unit42 发现了一起针对东南亚政府的一次间谍行为,试图获取 ...
随机推荐
- jqGrid 重新加载数据
参考:https://blog.csdn.net/u012746051/article/details/52949353 $("#列表区域id").jqGrid('clearGri ...
- display:flex下子元素宽度无效
在子元素上设置: width:60px; flex-shrink:0;
- Linux--add the PPA to your system
Add a PPA to your system with a single line in your terminal step1:on the PPA's overview page,look f ...
- computed、methods、watch
computed:计算属性将被混入到 Vue 实例中.所有 getter 和 setter 的 this 上下文自动地绑定为 Vue 实例. methods:methods 将被混入到 Vue 实例中 ...
- C语言表结构(1)
1.顺序表初始化实战: #include<stdio.h> #include<stdlib.h> #define OK 1 #define OVERFLOW 0 #define ...
- 吴裕雄--天生自然JAVAIO操作学习笔记:字符编码与对象序列化
public class CharSetDemo01{ public static void main(String args[]){ System.out.println("系统默认编码: ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:显示和隐藏内容
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- vue axios 数据请求实现
1.安装nginx npm install axios --save-dev cnpm install axios --save-dev 使用淘宝镜像 保存依赖文件到本地 装好了.packjson.j ...
- java 寒假作业
寒假作业 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业: □ + □ = □ □ - □ = □ □ × □ = □ □ ÷ □ = □ (如果显示不出来,可以参见[图1.jpg]) 每个方 ...
- generator 和 yield
yield 的使用 generator 生成器 yield 可以使生成器返回多次 我习惯于从表象推测,不喜欢官方文档,写的字都认识,结果变成句子之后,就一句都看不懂 所以先举一个例子来看一下这个东西怎 ...