类型混淆漏洞实例浅析

本文探讨了类型混淆漏洞,通过IE的CVE-2017-0037和Word的CVE-2015-1641实例,详细解释了漏洞成因、分析过程和可能的利用点,强调了对象类型检查的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类型混淆漏洞一般是将数据类型A当做数据类型B来解析引用,这就可能导致非法访问数据从而执行任意代码。

本文通过IE类型混淆漏洞实例和Word类型混淆漏洞实例进行分析,来学习理解类型混淆漏洞原理。

实例一:IE/Edge类型混淆漏洞(CVE-2017-0037)

漏洞原因:函数处理时,没有对对象类型进行严格检查,导致类型混淆。

分析环境:    Win7、IE11

分析工具:    Windbg、od、IDA Pro

             

在PoC中定义了一个table,标签中定义了表id为th1,在boom()中引用,然后是setInterval设定事件。

漏洞成因分析:

运行PoC,用OD或Windbg附加并加载运行,出现崩溃,如下图

从崩溃点可以看到eax作为指针,引用了一个无效地址,导致崩溃,而上一条指令是一个call,如下

这个无效的返回值来自这个call,此时我们进行逆推,在这个call处下断点,

ecx作为参数,存放的对象是一个Layout::FlowItem::`vftable虚表

这个值会在Readable函数中引用,如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值