首页
社区
课程
招聘
最新pdf0day漏洞
发表于: 2009-3-2 09:11 9095

最新pdf0day漏洞

2009-3-2 09:11
9095
不知道大家有没有调过最新的pdf0day漏洞,该漏洞在网上有人讨论的消息是可以利用堆喷射以达到运行javascript中shellcode的目的,有人说不需要javascript就可以利用该漏洞,不知道哪位大侠能否共享一下自己的研究成果啊?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (20)
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
不知道有谁有最新的核弹,给我分享一颗,我想祸害下人民群众
2009-3-2 09:33
0
雪    币: 197
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
在Adobe Reader 8和9版本的核心AcroRd32.dll模块中,处理JBIG2Decode的图形嵌入对象,在计算复制地址时会出现溢出问题,导致程序崩溃。

http://www.milw0rm.com/exploits/8099

Adobe PDF检测流程
生成具有破坏格式的PDF演示文件如下(此演示文件只演示了造成漏洞的代码,没有攻击性)

其中,stream字段中的第5字节的第6位,在JBIG2的解析过程中用来说明是“大页”(a large page) ,其大小在后续四个字节给出,如图 41 42 43 44。

崩溃处代码

此段代码为Adobe Reader解析JBIG2的代码,其中先读取图像大小,然后进行解压缩操作,将解压后的二进制文件写入相应的内存地址。

由于计算地址时未检验 ,从调试中可以看到eax最初值为文件中指定的0x44434241,在计算eax+eax*4后,有计算ecx类的地址ecx+eax*4-14的位置,该位置超出了正常的内存。于是对计算出来的错误内存地址进行写操作,造成崩溃。

但是如果事先通过其他手段进行了Heap Spray(例如用Javascript对堆进行淹没攻击),则可以将文件解压后释放到目标内存中(示例中为”AAAA…”),其中,可以通过修改图上所示的 41 42 43 44 字段,指定溢出地址。

由此可以看出,只要将ShellCode以JBIG2格式进行压缩放入该stream中,就可以在解析的时候释放到指定的位置,然后配合Heap Spray技术,通过其他手段,将EIP跳转到ShellCode的位置去执行。
2009-3-2 10:57
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个分析起来有一定困难,如果有那种可以直接弹出计算器的POC就好了
可以看到内存中有calc这个字符串,但是没有真正触发起来

不知道哪位高人有经验可以分享一下,谢谢!
2009-3-3 09:20
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我也看了一下该溢出,但是没有找到具体的利用方法
2009-3-3 10:23
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
肯定是可以用的,只是技术限制,有高人可以讲解一下啊
2009-3-3 17:01
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
在那条溢出的指令无法下断点,不知道是不是Adobe reader有反调试的功能?或者是版本问题?
2009-3-3 17:33
0
雪    币: 230
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我有样本..一运行我的EQ就傻了..还没来的急分析..
2009-3-3 18:49
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
Adobe Reader的漏洞不知这些,有个漏洞,还可以直接过数字证书所限制的打印复制等功能,到版本10依然存在
2009-3-3 20:30
0
雪    币: 197
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不知道8楼的兄弟能把样本共享一下吗?可以放出来大家共同探讨一下嘛
2009-3-4 08:42
0
雪    币: 230
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
加我QQ8030787 注明:看雪ID
2009-3-5 13:40
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我也需要一份,qq 110108743,预谢!
2009-3-5 15:33
0
雪    币: 230
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我忏悔..~原谅我吧.~
2009-3-5 15:53
0
雪    币: 230
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我有罪...............
2009-3-5 16:06
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
[QUOTE=;]...[/QUOTE]
http://securitylabs.websense.com/content/Blogs/3311.aspx#
这有新的分析结果,上面的那个分析貌似有问题,
2009-3-8 21:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
利用内存重写,可以把这个函数的返回地址覆盖掉,这样当函数返回的时候就能执行到我们的代码。不过应该是需要事先布置好堆中的内容,否则到add     dword ptr [ecx+eax*4-14h],1 ds:0023:07d96648=????????这里的时候直接crash了,因为该地址还未被初始化。SECUNIA说有不需要事先heap spray的利用方法。不知道是怎么弄的。
2009-3-17 17:19
0
雪    币: 21
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
有人具体做了么?可以写个文档介绍一下详细的分析过程么?非常期待!
2009-3-18 15:44
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
[QUOTE=shocker;592765]利用内存重写,可以把这个函数的返回地址覆盖掉,这样当函数返回的时候就能执行到我们的代码。不过应该是需要事先布置好堆中的内容,否则到add     dword ptr [ecx+eax*4-14h],1 ds:0023:07d96648=????????这里的时候直接crash了,因为该地址还未被初始...[/QUOTE]

好像利用脚本申请大量堆地址,填写0d0d0d0d,中间那个地址没搞明白是什么,后面那shellcode好像也有点问题。
0d0d0d0d可以覆盖ebp,貌似返回后就可以跳转到shellcode,但是返回之前已经crash。
请高手指点下啊!
2009-3-18 16:28
0
雪    币: 21
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
我不是很明白,这个漏洞使用堆喷射是达到怎样的目的?是让超出正常内存范围的地址不被当作异常报错,还是通过它来找到事先作好的shellcode 呢?如果利用漏洞,代码是以什么方式存在的呢?因为这些是要写在pdf的stream流里的吧!是使用javascript还是java?是否需要jbig2的压缩?
2009-3-20 10:41
0
雪    币: 146
活跃值: (92)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
.........heap spray技术——利用原理
.........堆溢出——漏洞原理
2009-5-15 09:59
0
雪    币: 249
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
http://hi.baidu.com/x%5Fx%5Fo%5Fx%5Fx/blog/item/33be86f5325cc7e77709d773.html
哦。我的利用程序。
2009-7-22 01:28
0
游客
登录 | 注册 方可回帖
返回
//