首页
社区
课程
招聘
[原创]CVE-2013-3893 IE浏览器uaf漏洞利用
发表于: 2017-5-2 19:22 11734

[原创]CVE-2013-3893 IE浏览器uaf漏洞利用

2017-5-2 19:22
11734

1. 背景

这次调试了一个浏览器的的uaf漏洞。(首先原谅我快把看雪当成私人博客了,我是一个正在学习二进制漏洞的小菜鸟,发出来的目的是想各位大佬多交流,不过目前来看没多少大佬愿意理我 [摊手][无奈])

什么是uaf呢?大概的意思就是,应用程序访问了一个已经被free掉的内存。利用这个漏洞可以执行任意代码。

这篇文章不是分析漏洞产生的原因,主要是记录了利用这个漏洞去执行代码的整个过程,想了解具体原因看参考。

2. poc1

根据前人的分析,拿到poc来测试一下,测试的环境是win7-32-ie8

windbg中断在

想要看进一步的细节需要打开pageheap,这样当程序的堆出现异常的时候能最快断下来,原理请看参考。

设置pageheap后,在一次运行poc,这次在访问一个地址的时候出现了异常,看起来是一个堆的地址.

查看一下这个地址的状态 !heap -p -a 05866fb0 很明显被free掉了

接下来找到内存在何时被free掉的,然后在内存free之后,访问之前,重新分配这块内存,填充我们的代码,这就能控制程序去访问一个可控的地址,然后在看看是否能去利用。

3. poc2

保存exp.html,打开windbg开始调试。

**!!!记得在运行之前关掉pageheap,要是没关掉pageheap,程序可能在之前访问堆的时候就已经挂掉了。**

程序出现了异常,但是eax寄存器是我们脚本中的值,紧接着是call  dword ptr [ecx],接下来只要在0c0c0c0c中放入shellcode的地址的地址,就能调用我们的shellcode去执行。还有为啥是0c0c0c0c,因为后面要利用堆喷把shellcode放到了0c0c0c0c。

4. spray heap

前面已经控制程序去访问一个可控地址,接下来就把shellcode放到这个地址,因为有aslf的保护,所以要用堆喷去绕过,执行我们的代码。

要利用堆,首先要对堆有个简单的了解。堆分配是连续的,但是由于程序申请、释放堆之后,造成了很多堆碎片。在次分配堆的时候,首先从这些堆碎片中分配,当堆碎片用完的时候,重新向操作系统申请新的堆,这时候的堆是连续的。

堆喷射就是利用了这个特性,大量的用"nop+shellcode"占用堆,这样当我们访问某一堆地址的时候,总能执行到我们的shellcode。但是不开心的是,有dep保护,在堆中执行不了代码,这时候就要用精确堆喷射,就是每次堆喷射都把shellcode的开头固定在某一特定的地址比如(0c0c0c0c)。

堆的对齐是0x1000的倍数,如果堆喷的内容 [nops+shellcode]大小等于0x1000,这样只要确定0c0c0c0c到最近的[nops+shellcode] 的首地址,就能确定shellcode和nops的距离,这样0c0c0c0c总能指向shellcode的首地址,这块表述不清,具体看参考。

堆喷射代码

执行之后堆内就存在 150 个BSTR 字符串对象  " [4+ [nops+shellcode] + [nops+shellcode] + [nops+shellcode] + .... +2] =1m" 就是150m

0c0c0c0c也就是了shellcode地址。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (7)
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
“首先原谅我快把看雪当成私人博客了”

非常欢迎当成私人博客,论坛还在优化,会突出个人中心。
2017-5-2 19:34
0
雪    币: 1746
活跃值: (227)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
给楼主顶一个,似乎大牛都喜欢潜水,没多少人愿意出来
2017-5-2 20:01
0
雪    币: 86
活跃值: (1220)
能力值: ( LV7,RANK:150 )
在线值:
发帖
回帖
粉丝
4
kanxue “首先原谅我快把看雪当成私人博客了” 非常欢迎当成私人博客,论坛还在优化,会突出个人中心。
好的  以后争取多写点
2017-5-2 21:01
0
雪    币: 86
活跃值: (1220)
能力值: ( LV7,RANK:150 )
在线值:
发帖
回帖
粉丝
5
hackyzh 给楼主顶一个,似乎大牛都喜欢潜水,没多少人愿意出来[em_13]
谢谢捧场
2017-5-2 21:01
0
雪    币: 2325
活跃值: (4898)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
还真可以搞成  私人博客之类·······加个啥  关注  把关注高的  推荐一下啥的!
2017-5-2 22:03
0
雪    币: 199
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
加油加油
2017-11-23 11:26
0
雪    币: 635
活跃值: (1016)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
win7  x86  ie8测试ie会崩啊,关了dep也不行
2017-11-30 14:04
0
游客
登录 | 注册 方可回帖
返回
//