首页 -> 安全研究
安全研究
安全漏洞
Microsoft FrontPage 2000服务器扩展fp30reg.dll远程缓冲区溢出漏洞(MS01-035)
发布日期:2001-07-18
更新日期:2001-07-18
受影响系统:
Microsoft FrontPage 2000 Server Extensions描述:
- Microsoft Windows NT 4.0 SP6
- Microsoft Windows NT 4.0 SP5
- Microsoft Windows NT 4.0 SP4
- Microsoft Windows NT 4.0 SP3
- Microsoft Windows NT 4.0 SP2
- Microsoft Windows NT 4.0 SP1
- Microsoft Windows NT 4.0
- Microsoft Windows 2000 Server SP2
- Microsoft Windows 2000 Server SP1
- Microsoft Windows 2000 Server
BUGTRAQ ID: 2906
CVE(CAN) ID: CVE-2001-0341
Microsoft FrontPage 2000服务器扩展是Microsoft公司开发的用于加强IIS Web服务器的功能的软件包。
FrontPage 2000服务器扩展软件包中带了一个动态链接库:fp30reg.dll。NSFOCUS安全小组发现它存在一个缓冲区溢出漏洞。如果成功地利用这个漏洞,远程攻击者可以在被攻击的主机上执行任意指令。
当向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)
链接:http://www.nsfocus.com/sa01-03.htm
http://www.microsoft.com/technet/security/bulletin/MS01-035.asp
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
如果只提交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.net/proof/fpse2000ex.c
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* FrontPage 2000 服务器扩展会被安装在下列目录(缺省在C:\)中:
"\Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\"
您可以通过"Internet 服务管理器"检查_vti_bin目录的路径来得到准确的路径名。
如果您发现"\Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\isapi\_vti_aut\fp30reg.dll"文件存在的话,那么您的系统就可能被直接进行攻击。我们建议您删除此文件或者重新设置权限禁止任何人执行它。
* 我们建议您将"\Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\bin\fp4areg.dll"的权限也设置为禁止任何人执行。
* 如果您不需要FrontPage 2000服务器扩展,我们强烈建议您完全删除此服务。方法是:
1、打开一个命令行窗口,进入FPSE所在的驱动器,默认是C:\
2、cd \Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\bin
3、fpsrvadm -o uninstall -p all
这个漏洞是Nsfocus安全小组发现的并提交给微软的,详细情况请参考Nsfocus安全公告:
http://www.nsfocus.com/sa01-03.htm
厂商补丁:
Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS01-035)以及相应补丁:
MS01-035:FrontPage Server Extension Sub-Component Contains Unchecked Buffer
链接: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
浏览次数:4615
严重程度:0(网友投票)
绿盟科技给您安全的保障