ActivePerl的perlIS.dll存在缓冲溢出发布时间:2001-11-16 更新时间:2001-11-16 严重程度:高 威胁程度:远程管理员权限 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 Activestate ActivePerl 5.6.1.629 以及更低版本详细描述 ActivePerl 是ActiveState公司开发的一套二进制perl软件包,可应用于Linux,Solaris,Windows系统下。ActivePerl for windows包含一个名为perlIS.dll的动态链接库文件,它是一个ISAPI扩展,为微软IIS服务器提供了一个高性能的perl接口。 PerlIS可以对用户发送的perl脚本请求进行处理,然而,它没有正确检查用户提交的URL请求的长度。如果用户发送一个超长的URL请求,PerlIS会调用strcpy()将其拷贝到一个堆栈中的缓冲区里,这会触发一个缓冲区溢出。攻击者可以覆盖堆栈中的一些敏感数据,例如返回地址等等,如果精心构造URL请求的内容,攻击者就可以远程执行任意代码。 成功地利用这个漏洞,在IIS 5.0中,攻击者可以获取IWAM_machinename用户的权限. 在IIS 4.0中,攻击者可以获取Local SYSTEM权限。 测试代码 漏洞测试: ========== $ lynx http://host/cgi-bin/`perl -e 'print "A" x 360'`.pl The remote procedure call failed. 解决方案 临时解决方法: =========== 我们建议用户按照参考如下步骤消除漏洞(以IIS 4.0为例): 1. 打开Internet 服务管理器 2. 右击你的服务器(例如 "* nsfocus"),在菜单中选择"属性"栏 3. 选择"主属性" 4. 选择 WWW 服务 | 编辑 | 主目录 | 配置 5. 在扩展名列表中找到对应perlIS.dll的项(通常映射到".pl"或".cgi") 6. 点击"配置",然后点击"检查文件是否存在"选项 6. 保存设置,然后重启IIS服务。 厂商状态: ========= 2001.10.15 我们将这个问题通报给了ActiveState公司。 2001.10.23 ActiveState公司告知已经在build 630中修复此安全问题 您可以在下列地址下载ActivePerl的最新版本: http://www.activestate.com/Products/ActivePerl/download.plex 相关信息 作者:Nsfocus安全小组(security@nsfocus.com) 主页:http://www.nsfocus.com |