Microsoft FrontPage 2000服务器扩展缓冲区溢出漏洞发布时间:2001-06-26 更新时间:2001-06-26 严重程度:高 威胁程度:远程管理员权限 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 Microsoft FrontPage 2000 Server Extensions详细描述 NSFOCUS安全小组发现微软FrontPage 2000 服务器扩展软件包中的一个程序存在 一个缓冲区溢出漏洞。远程攻击者可能利用这个漏洞执行任意代码。 微软FrontPage 2000 服务器扩展软件包中带了一个动态链接库:fp30reg.dll. 它存在一个缓冲区溢出漏洞。当向fp30reg.dll提交一个包含超过258字节的长 URL请求时,将触发一个基于堆栈的缓冲区溢出。成功地利用这个漏洞,攻击 者可以在被攻击的主机上远程执行任意代码。 如果fp30reg.dll收到到一个它不理解的参数时,它会返回一个错误信息给请求者: "The server is unable to perform the method [用户提供的参数] at this time" 这个错误信息被保存在堆栈中的一个缓冲区中。fp30reg.dll调用 USER32.wsprintfA()来构造返回消息,由于没有检查用户输入数据的长度,攻击 者可以重写某些重要的内存地址以改变程序流程,例如:异常结构或者保存的返 回地址等。 USER32.wsprintfA()用到的格式串为: <HEAD><TITLE>HTTP Error 501</TITLE></HEAD><BODY><H1>NOT IMPLEMENTED</H1> The server is unable to perform the method <b>%s</b> at this time.</BODY> 它也被保存在堆栈中,而且它的地址在(目标缓冲区地址 + 256字节)处,因此在 溢出发生时,格式串会被重写,攻击者必须设法使拷贝顺利完成。 如果攻击者使用随机数据,可导致IIS停止响应。 对于IIS 5.0, IIS服务会自动重新启动。而对于IIS 4.0,需要手工重启服务。 成功地利用这个漏洞, 在IIS 5.0中,攻击者可以获取IWAM_machinename用户的权限. 在IIS 4.0中,攻击者可以获取Local SYSTEM权限。 注意: fp30reg.dll在另外一个目录: "\Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\bin\" 下有一份拷贝,名字为: fp4areg.dll. 攻击者也可以利用unicode等漏洞来访问这个程序。 测试代码 Nsfocus Security Team (security@nsfocus.com)提供了下列测试代码: 如果只提交258字节长的参数,溢出不会发生: $ curl http://xx.xx.xx.xx/_vti_bin/_vti_aut/fp30reg.dll?`perl -e 'print "A"x258'` <HEAD><TITLE>HTTP Error 501</TITLE></HEAD><BODY><H1>NOT IMPLEMENTED</H1> The server is unable to perform the method <b>AAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAA</b> at this time.</BODY> 但是,如果长度超过258字节,就将触发缓冲区溢出: $ curl http://xx.xx.xx.xx/_vti_bin/_vti_aut/fp30reg.dll?`perl -e 'print "A"x259'` <html><head><title>Error</title></head><body>The remote procedure call failed. </body></html> Nsfocus Security Team 也提供了一个演示程序: http://www.nsfocus.com/proof/fpse2000ex.c 解决方案 临时解决方法: 删除或禁止任何人访问fp30reg.dll和fp4areg.dll 厂商补丁: 微软已就此发布了一个安全公告(MS01-035)以及相应补丁。 您可以在下列地址看到微软安全公告的详细内容: http://www.microsoft.com/technet/security/bulletin/ms01-035.asp 补丁程序可以在下列地址下载: . Microsoft Windows NT 4.0: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=31038 . Microsoft Windows 2000: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=30727 相关信息 Nsfocus Security Team (security@nsfocus.com) |