标题:Adobe CoolType SING Table "uniqueName" Stack Buffer Overflow
分析:
典型的直接调用strcat这类不安全的字符串操作函数而造成的缓冲区溢出漏洞,以上exploit通过覆盖栈上的函数指针来达到漏洞利用的目的。
.text:0803DC6D push offset aSing ; "SING" .text:0803DC72 push edi ; int .text:0803DC73 lea ecx, [ebp+var_24] .text:0803DC76 call sub_8021AC6 .text:0803DC7B mov eax, [ebp+var_24] ; eax指向SING表 .text:0803DC7E cmp eax, esi .text:0803DC80 mov byte ptr [ebp+var_4], 2 .text:0803DC84 jz short loc_803DCBD .text:0803DC86 mov ecx, [eax] .text:0803DC88 and ecx, 0FFFFh .text:0803DC8E jz short loc_803DC98 ; .text:0803DC90 cmp ecx, 100h .text:0803DC96 jnz short loc_803DCB9 .text:0803DC98 .text:0803DC98 loc_803DC98: ; .text:0803DC98 add eax, 10h ; eax = offset of SING + 0x10, 即指向了SING表的uniqueName字段 .text:0803DC9B push eax ; .text:0803DC9C lea eax, [ebp+0] ; eax指向栈内存的指针, 用于存储数据 .text:0803DC9F push eax ; Dest .text:0803DCA0 mov byte ptr [ebp+0], 0 .text:0803DCA4 call strcat ; 直接拷贝uniqueName到栈空间,没有对数据长度进行任何的校验 .text:0803DCA9 pop ecx |
检测:
在Adobe的文档中实际规定uniqueName的长度最多为28字节,通过解析CoolType字体文件,找到uniqueName字段即可进行检测。
Exp下载(Shellcode是连接本机端口4444):
http://www.uudisc.com/user/nuclearatk/file/3506554
文章来源于lcx.cc:【Exp】Adobe Table "uniqueName" 溢出
相关推荐: 【Html】Html 使用Java脚本跳回、返回上一页
Html 使用 Java 脚本跳回、返回上一页: javacscript:history.back() 这个真没啥解释了,属于不刷新式的跳回方式。 Html 使用 Java 脚本跳回、返回上一页,Html 使用 Java 脚本跳回上一页,Html 使用…
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论