无名商城论坛

搜索
查看: 291|回复: 0

[其他技术] 【梅开二度】Hacking Team Flash 0day

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 17:18:25 | 显示全部楼层 |阅读模式
茫茫JIT CODE中,如何找到我们想要跟踪的代码呢? 借HackingTeam Flash 0day事件详细介绍下调试流程以及jitcode,帮助一些朋友们后续更好的学习。

ValueOf频出漏洞,adobe现在一直在缺哪补哪,7月8号才修复了hackingteam爆出来的0day CVE-2015-5119,紧接着10号又被人从泄露的邮件中挖掘出另一个0day,又是valueOf的问题。这次这个0day是TextLine对象的valueOf造成的UAF漏洞,Fireeye已经提交了adobe并领取了CVE-2015-5122,Adobe也发布了安全公告。

一直本着有人分析过的漏洞不在专门写文章来描述,有点重复工作的感觉。不过刚好有点想法通过这个文章详细介绍下调试流程以及jitcode,帮助一些朋友们后续更好的学习。

茫茫JIT CODE中,如何找到我们想要跟踪的代码呢?

茫茫JIT CODE,如何找到我们想要跟踪的代码? 这里有很多方法,具体可以参见附录debug jitcode,这里通过先找到array的函数创建以及数据结构,获取设置值对应的实现函数, 来跟踪整个EXP 代码的JIT CODE 流程(PS:怎么找到的?根据附录里面的方法)

ARRAY Struct
+0x10   m_buffer
+0x18   m_pos
+0x1c   m_cab

Data
m_buffer + 8 + m_pos*4

Array Method 对应18.0.0.203.ocx 地址
106B54D0   ArrayObject::_setUintProperty
106AECB0   ArrayObject:create_array
通过设置如下断点来跟踪

bu Flash32_18_0_0_203!IAEModule_IAEKernel_UnloadModule+0x19b9c0 ".echo set array value;dd esp"   avmplus:istImpl  // 10662080
bu Flash32_18_0_0_203!IAEModule_IAEKernel_UnloadModule+0x19b860 "set array value by obj"   // 10661F20
bu Flash32_18_0_0_203!IAEModule_IAEKernel_UnloadModule+0x1e85f0 ".echo createarray"
bu avmplus::ArrayObject::_setUintProperty
整个exp里面在真正TryExpl之前有个Check64函数,这里不详细讲述,原理跟TryExpl一样主要是用来做探路先小触发下漏洞获取当前是64位还是32位进程。

在调用TryExpl之前有几次分配array 可以直接忽略,可以根据TryExpl里面的Array长度为0x7E来识别
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表