xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

Microsoft SQL Server 2000 Resolution服务存在堆栈缓冲溢出攻击


发布时间:2002-07-27
更新时间:2002-07-27
严重程度:
威胁程度:远程管理员权限
错误类型:边界检查错误
利用方式:服务器模式

BUGTRAQ ID:5311
CVE(CAN) ID:CAN-2002-0649

受影响系统
Microsoft SQL Server 2000 SP2
Microsoft SQL Server 2000 SP1
   - Microsoft Windows 2000 Workstation
   - Microsoft Windows 2000 Workstation SP1
   - Microsoft Windows 2000 Workstation SP2
   - Microsoft Windows NT 4.0 SP5
   - Microsoft Windows NT 4.0 SP6
   - Microsoft Windows NT 4.0 SP6a
Microsoft SQL Server 2000
   - Microsoft Windows 2000 Workstation
   - Microsoft Windows 2000 Workstation SP1
   - Microsoft Windows 2000 Workstation SP2
   - Microsoft Windows NT 4.0
   - Microsoft Windows NT 4.0 SP5
   - Microsoft Windows NT 4.0 SP6
   - Microsoft Windows NT 4.0 SP6a
详细描述
Microsoft SQL Server 2000通过Resolution服务使用keep-alive机制。

Microsoft SQL Server 2000的Resolution服务存在漏洞,当SQL服务在1434 UDP端口接收到第一个字节设置为0x04的包,SQL监视线程就会提取包中的数据并尝试使用用户提供的信息打开注册键值,通过发送\x04\x41\x41\x41\x41的包,SQL就会打开如下的注册表键值:

HKLM\Software\Microsoft\Microsoft SQL Server\AAAA\MSSQLServer\CurrentVersion

通过在包后追加大量字符,可导致产生基于堆栈的缓冲溢出。通过使用包含"jmp esp" or "call esp"指令的地址覆盖返回地址,可导致以SQL进程执行任意代码。

测试代码


解决方案
下载补丁:

Microsoft SQL Server 2000 SP2:

Microsoft Patch Q323875_SQL2000_SP2_en
http://download.microsoft.com/download/SQLSVR2000/Patch/Q323875/W98NT42KMeXP/EN-US/Q323875_SQL2000_SP2_en.EXE

相关信息
David Litchfield of Next Generation Security Software Ltd.
参考:http://www.microsoft.com/technet/security/bulletin/MS02-039.asp
http://archives.neohapsis.com/archives/bugtraq/2002-07/0291.html