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

ActivePerl的perlIS.dll存在缓冲溢出


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

受影响系统
Activestate ActivePerl 5.6.1.629 以及更低版本
- Microsoft Windows IIS 4.0
- Microsoft Windows IIS 5.0
详细描述
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