扫一扫关注公众号,长期致力于安全研究
前言:由CoolType.dll库所导致的栈溢出漏洞
Adobe Reader 9.3.4
PdfStreamDumper
MSF生成的PDF
IDA和OD
这里MSF有现成的,直接生成一个就行了
之后通过PdfStreamDumper将TFF文件单独分离出来,等下要用的
将Adobe Reader安装目录中的CoolType.dll拖进去即可,通过搜索SING字符串直接定位。
具体流程如下,在获取uniqueName之后,没有对其进行校验长度,则导致漏洞产生。
0803DD74 68 4CDB1908 push CoolType.0819DB4C ; ASCII 53,"ING"
0803DD79 57 push edi
[ebp-0x24] ;指向sing表入口 :
0803DD7D E8 843DFEFF call CoolType.08021B06 ; 处理Sing表
0803DD82 8B45 DC mov eax,dword ptr ss:[ebp-0x24]
0803DD85 3BC6 cmp eax,esi
0803DD87 C645 FC 02 mov byte ptr ss:[ebp-0x4],0x2
0803DD8B 74 37 je short CoolType.0803DDC4
0803DD8D 8B08 mov ecx,dword ptr ds:[eax]
0803DD8F 81E1 FFFF0000 and ecx,0xFFFF ; Sing表资源版本号进行与
0803DD95 74 08 je short CoolType.0803DD9F ; 跳转
0803DD97 81F9 00010000 cmp ecx,0x100
0803DD9D 75 21 jnz short CoolType.0803DDC0
0803DD9F 83C0 10 add eax,0x10 ; uniqueName地址
0803DDA2 50 push eax
0803DDA3 8D45 00 lea eax,dword ptr ss:[ebp]
0803DDA6 50 push eax
0803DDA7 C645 00 00 mov byte ptr ss:[ebp],0x0
;造成溢出
SING表入口如下,从文件开始位置+0X11C处。add eax,0x10这条指令也就解释的通了,uniqueName就是0X12C开始处被push进栈进行了操作
首先可以看到uniqueName的内容
直接给返回地址设置一个断点,跳过去即可
之后pop esp将0C0C0C0C保存到ESP中,这个0C0C0C0C处就是rop链,因为该程序有DEP,所以需要首先绕过DEP,不得不说MSF很强。最后通过ret跳到0C0C0C0C处开始执行rop链
接下来就是各种pop ret了,这里跳过去即可
重点来了,通过一个pop eax,将CreateFile的地址存起来了,之后
ret [0C0C0C20] (伪代码)
ret跳过来之后,是一个jmp eax,而eax是CreateFile的地址,不得不说这rop链很方便
之后crtr+F9一路跳到这儿,通过CreateFileMapping创建一块物理页,这里操作其实和上面的CreateFile操作一样,通过将该函数的地址存到寄存器,在用jmp进行跳转到该函数执行
当CreateFileMapping执行完后,就到了MapViewOfFile映射物理页这里,是不是很熟悉,将该函数地址存到eax,在通过ret跳转到jmp eax处执行该函数
在之后就是各种pop ret了,关键点在最后,memcpy中,所以直接跳转过去即可。
熟悉的操作,接下来将memcpy函数地址存到eax,在通过ret定位到jmp eax处
根据上方的memcpy给的地址39E0000,可以确定是被拷贝数据的空间,当执行完memcpy之后,定位到一个ret,通过ret执行MSF中的shellcode
这里为了演示方便,我直接将默认shellcode内容更改为弹窗shellcode了
之后成功跳转到自己的shellcode里面
最后成功执行自己的shellcode,这里卡了...不过还是能看见弹窗是成功执行了的
但是还有个疑问。CreateFile创建的是什么?通过winhex查看,发现创建的文件存放的是shellcode,这就说得通了。
整体流程就是通过CreateFile创建了一个iso88591文件
iso88591里面就是shellcode,之后关闭DEP之后,通过memcpy将iso88591内容拷贝进内存并执行
下方扫一下扫,即可关注
本文始发于微信公众号(安全族):[漏洞分析]CVE-2010-2883之PDF漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论