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

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

缺陷编号:wooyun-2015-0147470

漏洞标题:kppw最新版前台sql注入

相关厂商:keke.com

漏洞作者: 路人甲

提交时间:2015-10-20 16:34

修复时间:2016-01-23 16:40

公开时间:2016-01-23 16:40

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-10-20: 细节已通知厂商并且等待厂商处理中
2015-10-25: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2015-12-19: 细节向核心白帽子及相关领域专家公开
2015-12-29: 细节向普通白帽子公开
2016-01-08: 细节向实习白帽子公开
2016-01-23: 细节向公众公开

简要描述:

我这么认真,你们还是给我点对应的rank吧

详细说明:

算上关联的函数,本来还有很多的,我自己也没有找了,
我测试的是utf版本的,你们gbk版本由于这个问题已经炸了,希望好好审查
下面我拿 control\user\message_send.php文件举例,同样问题的我找的还有 message.php,yijia.php

<?php defined ( 'IN_KEKE' ) or exit('Access Denied');
$strUrl = 'index.php?do=user&view=message&op=send';
if (isset ( $formhash ) && kekezu::submitcheck ( $formhash )) {
$title = kekezu::str_filter ( kekezu::escape (strip_tags(htmlspecialchars_decode($title) ))) ;
$content = kekezu::str_filter ( kekezu::escape (strip_tags(htmlspecialchars_decode($content) ))) ;
$objMsgM = new Keke_witkey_msg_class ();
if (strtoupper ( CHARSET ) == 'GBK') {
$to_username = kekezu::utftogbk($to_username );
}
$arrSpaceInfo = kekezu::get_user_info ( $to_username, 1 );
if (! $arrSpaceInfo) {
$tips['errors']['to_username'] = '用户不存在';
kekezu::show_msg($tips,NULL,NULL,NULL,'error');
}
if ($arrSpaceInfo ['uid'] == $gUid) {
$tips['errors']['to_username'] = '无法给自己发送';
kekezu::show_msg ( $tips, NULL, NULL, NULL, 'error' );
}
if (strtoupper ( CHARSET ) == 'GBK') {
$title = kekezu::utftogbk($title );
$content = kekezu::utftogbk($content );
}
$objMsgM->setUid ( $gUid );
$objMsgM->setUsername ( $username );
$objMsgM->setTo_uid ( $arrSpaceInfo ['uid'] );
$objMsgM->setTo_username ( $arrSpaceInfo ['username'] );
$objMsgM->setTitle ($title );
$objMsgM->setContent ($content);
$objMsgM->setOn_time ( time () );
$objMsgM->create_keke_witkey_msg ();
unset ( $objMsgM );
kekezu::show_msg ( '已保存', 'index.php?do=user&view=message&op=outbox', NULL, NULL, 'ok' );
}else{
$objUid and $intObjUid = intval($objUid);
$arrObjInfo = kekezu::get_user_info ( $intObjUid);
}


我们跟进 utftogbk() /lib/inc/keke_base_class.php

static function utftogbk($string) { 
$string = self::charset_encode ( "utf-8", "gbk", $string );
return $string;
}


继续

static function charset_encode($_input_charset, $_output_charset, $input) {
$output = "";
$string = $input;
if (is_array ( $input )) {
$key = array_keys ( $string );
$size = sizeof ( $key );
for($i = 0; $i < $size; $i ++) {
$string [$key [$i]] = self::charset_encode ( $_input_charset, $_output_charset, $string [$key [$i]] );
}
return $string;
} else {
if (! isset ( $_output_charset ))
$_output_charset = $_input_charset;
if ($_input_charset == $_output_charset || $input == null) {
$output = $input;
} elseif (function_exists ( "mb_convert_encoding" )) {
$output = mb_convert_encoding ( $input, $_output_charset, $_input_charset );
} elseif (function_exists ( "iconv" )) {
$output = iconv ( $_input_charset, $_output_charset, $input );
} else
die ( "sorry, you have no libs support for charset change." );
return $output;
}
}


iconv()函数,哈哈
我们随便注册个账号登陆
进入发消息界面 这里我们需要把发消息的对象填正确 下面的标题,内容随便你选哪个,我这里方便闭合,选择内容
对象 admin(默认存在) 标题 111111 内容 123錦'and sleep(1),123)# 这里必须用#注释,%23是无效的

QQ截图20151017183604.png


QQ截图20151017183434.png


成功 sleep()
本来很多的没有刷了,希望上个首页,么么哒

漏洞证明:

算上关联的函数,本来还有很多的,我自己也没有找了,
我测试的是utf版本的,你们gbk版本由于这个问题已经炸了,希望好好审查
下面我拿 control\user\message_send.php文件举例,同样问题的我找的还有 message.php,yijia.php

<?php defined ( 'IN_KEKE' ) or exit('Access Denied');
$strUrl = 'index.php?do=user&view=message&op=send';
if (isset ( $formhash ) && kekezu::submitcheck ( $formhash )) {
$title = kekezu::str_filter ( kekezu::escape (strip_tags(htmlspecialchars_decode($title) ))) ;
$content = kekezu::str_filter ( kekezu::escape (strip_tags(htmlspecialchars_decode($content) ))) ;
$objMsgM = new Keke_witkey_msg_class ();
if (strtoupper ( CHARSET ) == 'GBK') {
$to_username = kekezu::utftogbk($to_username );
}
$arrSpaceInfo = kekezu::get_user_info ( $to_username, 1 );
if (! $arrSpaceInfo) {
$tips['errors']['to_username'] = '用户不存在';
kekezu::show_msg($tips,NULL,NULL,NULL,'error');
}
if ($arrSpaceInfo ['uid'] == $gUid) {
$tips['errors']['to_username'] = '无法给自己发送';
kekezu::show_msg ( $tips, NULL, NULL, NULL, 'error' );
}
if (strtoupper ( CHARSET ) == 'GBK') {
$title = kekezu::utftogbk($title );
$content = kekezu::utftogbk($content );
}
$objMsgM->setUid ( $gUid );
$objMsgM->setUsername ( $username );
$objMsgM->setTo_uid ( $arrSpaceInfo ['uid'] );
$objMsgM->setTo_username ( $arrSpaceInfo ['username'] );
$objMsgM->setTitle ($title );
$objMsgM->setContent ($content);
$objMsgM->setOn_time ( time () );
$objMsgM->create_keke_witkey_msg ();
unset ( $objMsgM );
kekezu::show_msg ( '已保存', 'index.php?do=user&view=message&op=outbox', NULL, NULL, 'ok' );
}else{
$objUid and $intObjUid = intval($objUid);
$arrObjInfo = kekezu::get_user_info ( $intObjUid);
}


我们跟进 utftogbk() /lib/inc/keke_base_class.php

static function utftogbk($string) { 
$string = self::charset_encode ( "utf-8", "gbk", $string );
return $string;
}


继续

static function charset_encode($_input_charset, $_output_charset, $input) {
$output = "";
$string = $input;
if (is_array ( $input )) {
$key = array_keys ( $string );
$size = sizeof ( $key );
for($i = 0; $i < $size; $i ++) {
$string [$key [$i]] = self::charset_encode ( $_input_charset, $_output_charset, $string [$key [$i]] );
}
return $string;
} else {
if (! isset ( $_output_charset ))
$_output_charset = $_input_charset;
if ($_input_charset == $_output_charset || $input == null) {
$output = $input;
} elseif (function_exists ( "mb_convert_encoding" )) {
$output = mb_convert_encoding ( $input, $_output_charset, $_input_charset );
} elseif (function_exists ( "iconv" )) {
$output = iconv ( $_input_charset, $_output_charset, $input );
} else
die ( "sorry, you have no libs support for charset change." );
return $output;
}
}


iconv()函数,哈哈
我们随便注册个账号登陆
进入发消息界面 这里我们需要把发消息的对象填正确 下面的标题,内容随便你选哪个,我这里方便闭合,选择内容
对象 admin(默认存在) 标题 111111 内容 123錦'and sleep(1),123)# 这里必须用#注释,%23是无效的

QQ截图20151017183604.png


QQ截图20151017183434.png


成功 sleep()

修复方案:

你们懂的

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

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

忽略时间:2016-01-23 16:40

厂商回复:

漏洞Rank:4 (WooYun评价)

最新状态:

暂无


漏洞评价:

评价