首页 -> 安全研究
安全研究
安全漏洞
Microsoft Windows LoadImage API整数溢出漏洞
发布日期:2004-12-23
更新日期:2004-12-28
受影响系统:
Microsoft Windows XP Professional SP1描述:
Microsoft Windows XP Professional
Microsoft Windows XP Home SP1
Microsoft Windows XP Home
Microsoft Windows NT 4.0SP6a
Microsoft Windows NT 4.0SP6
Microsoft Windows NT 4.0SP5
Microsoft Windows NT 4.0SP4
Microsoft Windows NT 4.0SP3
Microsoft Windows NT 4.0SP2
Microsoft Windows NT 4.0SP1
Microsoft Windows NT 4.0
Microsoft Windows 2003
Microsoft Windows 2000SP4
Microsoft Windows 2000SP3
Microsoft Windows 2000SP2
Microsoft Windows 2000SP1
Microsoft Windows 2000
BUGTRAQ ID: 12095
WINDOWS的USER32库的LoadImage系统API允许加载一个bmp,cur,ico,ani格式的图标来进行显示。
LoadImage系统API在处理畸形图片格式时存在问题,远程攻击者可以利用这个漏洞触发整数溢出导致堆缓冲区被覆盖,精心构建提交数据可能以用户进程权限执行任意指令。
如果将图片格式里说明的大小设置为0xfffffffc-0xffffffff,当由LoadImage系统API进行解析的时候,可触发整数溢出。
LoadImage函数的定义如下
HANDLE LoadImage(
HINSTANCE hinst,
LPCTSTR lpszName,
UINT uType,
int cxDesired,
int cyDesired,
UINT fuLoad);
lpszName参数是用户指定的图标文件,uType参数可以指定为IMAGE_BITMAP加载一个BMP文件,IMAGE_CURSOR加载一个cur或ani文件,IMAGE_ICON加载一个ico文件。
在LoadImage内部对这bmp,cur,ico,ani格式的长度的解析并没有做有效的检查,产生错误的代码如下:
由ANI或CUR触发的时候:
.text:77D56178 mov eax, [ebx+8] <------------读取我们设置的值
.text:77D5617B mov [ebp+dwResSize], eax
.text:77D5617E jnz short loc_77D56184
.text:77D56180 add [ebp+dwResSize], 4 <------------加4,整数溢出
.text:77D56184
.text:77D56184 loc_77D56184: ; CODE XREF: sub_77D5608F+EFj
.text:77D56184 push [ebp+dwResSize] <-----------分配错误的堆内存
.text:77D56187 push 0
.text:77D56189 push dword_77D5F1A0
.text:77D5618F call ds:RtlAllocateHeap
其后的数据拷贝则是按我们给定的值进行拷贝,导致了堆的溢出。
.text:77D561A9 mov ecx, [ebx+8]
.text:77D561AC mov esi, [ebx+0Ch]
.text:77D561AF add esi, [ebp+arg_0]
.text:77D561B2 mov edx, ecx
.text:77D561B4 shr ecx, 2
.text:77D561B7 mov edi, eax
.text:77D561B9 rep movsd
.text:77D561BB mov ecx, edx
.text:77D561BD and ecx, 3
.text:77D561C0 rep movsb
攻击者可以构造恶意的bmp,cur,ico,ani格式的文件,嵌入到HTML页面,邮件中,发送给目标用户,成功利用该漏洞则可以获得系统的权限。
<*来源:Flashsky (flashsky@xfocus.org)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=110382891718076&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://www.xfocus.net/flashsky/icoExp/index.html
建议:
厂商补丁:
Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.microsoft.com/technet/security/
浏览次数:4025
严重程度:0(网友投票)
绿盟科技给您安全的保障