当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-059179

漏洞标题:Beescms v3.4 注入两处。

相关厂商:beescms.com

漏洞作者: ′雨。

提交时间:2014-05-02 16:31

修复时间:2014-07-28 16:32

公开时间:2014-07-28 16:32

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-05-02: 细节已通知厂商并且等待厂商处理中
2014-05-07: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-07-01: 细节向核心白帽子及相关领域专家公开
2014-07-11: 细节向普通白帽子公开
2014-07-21: 细节向实习白帽子公开
2014-07-28: 细节向公众公开

简要描述:

过滤不严格。

详细说明:

function get_ip(){
if(!empty($_SERVER['HTTP_CLIENT_IP']))
{
return $_SERVER['HTTP_CLIENT_IP'];
}
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
return $_SERVER['REMOTE_ADDR'];
}
}


这里 古老的xff洞。
在member.php中调用了。

elseif($action=='save_reg'){
$user=fl_html(fl_value($_POST['user']));
$password=fl_html(fl_value($_POST['password']));
$password2=fl_html(fl_value($_POST['password2']));
$nich=fl_html(fl_value($_POST['nich']));
$mail=fl_html(fl_value($_POST['mail']));
$code=fl_html(fl_value($_POST['code']));
if(!$_sys['web_member'][0]){
die("<script type=\"text/javascript\">alert('{$language['member_msg5']}');history.go(-1);</script>");
}
if(!check_str($user,'/^[a-zA-Z][a-zA-Z0-9]{3,15}$/')){die("<script type=\"text/javascript\">alert('{$language['member_msg6']}');history.go(-1);</script>");}
if(!check_str($nich,'/^[a-zA-Z][a-zA-Z0-9]{3,15}$/')){die("<script type=\"text/javascript\">alert('{$language['member_msg7']}');history.go(-1);</script>");}
if(empty($password)||empty($password2)){die("<script type=\"text/javascript\">alert('{$language['member_msg8']}');history.go(-1);</script>");}
if($password!=$password2){die("<script type=\"text/javascript\">alert('{$language['member_msg9']}');history.go(-1);</script>");}
if(!check_str($mail,'/^[0-9a-z]+@(([0-9a-z]+)[.])+[a-z]{2,3}$/')){die("<script type=\"text/javascript\">alert('{$language['member_msg10']}');history.go(-1);</script>");}
if(!empty($_sys['member_no_name'])){$no_name=explode('|',$_sys['member_no_name']);}
if(is_array($no_name)){
if(in_array($user,$no_name)){die("<script type=\"text/javascript\">alert('【".$user."】{$language['member_msg11']}');history.go(-1);</script>");}
}
if(!empty($_sys['safe_open'])){
foreach($_sys['safe_open'] as $k=>$v){
if($v=='1'){
if($code!=$_SESSION['code']){die("<script type=\"text/javascript\">alert('{$language['member_msg2']}');history.go(-1);</script>");}
}
}
}


$sql="select id from ".DB_PRE."member where member_user='{$user}'";
if($GLOBALS['mysql']->fetch_rows($sql)){die($language['member_msg12']);}
if(!$_sys['member_mail'][0]){
$sql="select id from ".DB_PRE."member where member_mail='{$mail}'";
if($GLOBALS['mysql']->fetch_rows($sql)){die($mail.$language['member_msg13']);}
}
$addtime=time();
$password=md5($password);
$sql="insert into ".DB_PRE."member (member_user,member_password,member_nich,member_mail,member_purview) values ('{$user}','{$password}','{$nich}','{$mail}',1)";
$GLOBALS['mysql']->query($sql);
$last_id=$GLOBALS['mysql']->insert_id();
$ip=fl_html(fl_value(get_ip()));
$sql="update ".DB_PRE."member set member_time='{$addtime}',member_ip='{$ip}' where id={$last_id}";


$ip=fl_html(fl_value(get_ip())); 在这里 经过了两个函数的处理。

function fl_value($str){
if(empty($str)){return;}
return preg_replace('/select|insert | update | and | in | on | left | joins | delete |\%|\=|\/\*|\*|\.\.\/|\.\/| union | from | where | group | into |load_file
|outfile/','',$str);
}


这个用大小写就能绕过了。

function fl_html($str){
return htmlspecialchars($str);
}

实体化 影响不大。
$sql="update ".DB_PRE."member set member_time='{$addtime}',member_ip='{$ip}' where id={$last_id}";
然后就带入了这个update当中。
造成了注入。
在mx_form/order_save.php处也调用了。

$ip=fl_value(get_ip());
$ip=fl_html($ip);
$member_id=empty($_SESSION['id'])?0:$_SESSION['id'];
$arc_id=empty($f_id)?0:intval($_POST['f_id']);
$sql="insert into ".DB_PRE."formlist (form_id,form_time,form_ip,member_id,arc_id) values ({$form_id},{$addtime},'{$ip}','{$member_id}','{$arc_id}')";


漏洞证明:

b1.jpg

修复方案:

Check it

版权声明:转载请注明来源 ′雨。@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-07-28 16:32

厂商回复:

最新状态:

暂无