Microsoft Windows PostMessage API暴露密码漏洞
发布日期:2003-03-13
更新日期:2003-03-19
受影响系统:Microsoft Windows 2000 Advanced Server SP3
描述:
BUGTRAQ ID:
7092
Microsoft Windows是一款由微软公司开发和维护的视窗系统。
Microsoft Windows PostMessage API存在漏洞会把暴露的密码信息拷贝到用户剪贴板,本地攻击者利用这个漏洞窃取密码信息。
在Win9x中发送使用WM_GETTEXT的SendMessage API到密码编辑框来获得密码信息,但是SendMessage API在Win2k中已经得到安全加固,不能让用户发送WM_GETTEXT消息给不允许当前处理线程的进程窗口。传统查看密码如下代码所示:
?Visual Basic Code Snippet
'The WM_GETTEXT technique has been blocked in Windows 2k/XP
nchrs = SendMessage(hwnd, WM_GETTEXTLENGTH, 0, 0) + 1
pStr = Space$(nchrs)
nchrs = SendMessage(hwnd, WM_GETTEXT, nchrs, ByVal pStr)
在Win2k中由于PostMessage API没有在发送消息给任何消息队列前检查消息类型和句柄,结合使用EM_SETPASSWORDCHAR,可导致获得密码信息。
<*来源:Palan (palan@myrealbox[dot]com)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=104766636129683&w=2
*>
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 应用程序开发者需要注意当处理密码编辑框的消息队列时要正确杀掉EM_SETPASSWORDCHAR和WM_GETTEXT消息。
厂商补丁:
Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本 :
http://www.microsoft.com/technet/security/浏览次数:3390
严重程度:0(网友投票)