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

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

缺陷编号:wooyun-2014-084459

漏洞标题:KPPW某处SQL注入一枚

相关厂商:keke.com

漏洞作者: 玉林嘎

提交时间:2014-11-25 21:58

修复时间:2015-02-23 22:00

公开时间:2015-02-23 22:00

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:12

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-11-25: 细节已通知厂商并且等待厂商处理中
2014-11-27: 厂商已经确认,细节仅向厂商公开
2014-11-30: 细节向第三方安全合作伙伴开放
2015-01-21: 细节向核心白帽子及相关领域专家公开
2015-01-31: 细节向普通白帽子公开
2015-02-10: 细节向实习白帽子公开
2015-02-23: 细节向公众公开

简要描述:

听了一晚上7师傅 根本停不下来

详细说明:

KPPW最新版
漏洞出现在一个函数
/lib/inc/keke_table_class.php
第75-87行:

function del($pk, $val, $url = null) {
if (! $val) {
return false;
}
if (is_array ( $val ) && ! empty ( $val )) {
$ids = implode ( ',', $val );
$this->_table_obj->setWhere ( " $pk in ($ids)" );
} elseif ($val) {
$this->_table_obj->setWhere ( "$pk = " . $val );
}
$del_query = "del_" . $this->_pre . $this->_table_name;
return $this->_table_obj->$del_query ();
}


可看到$val 传进来只要不是数组且存在就会走elseif分支
之后直接 未做'保护进入sql语句
找找 调用点
/control/user/message_detail.php
/control/user/message_notice.php
存在调用且有问题
2个类似 以第一个为例
/control/user/message_detail.php
第9-16行:

if (isset ( $action )&&$action=='delSingle') {
if ($msgId) {
$objMsgT->del ( 'msg_id', $msgId );
kekezu::show_msg ( '删除成功', 'index.php?do=user&view=message&op='.$type.'&intPage='.$intPage, NULL, NULL, 'ok' );
} else {
kekezu::show_msg ( '删除失败', NULL, NULL, NULL, 'error' );
}
}


$msg_id直接进入函数 而$msg_id是post进来且未做任何过滤的

漏洞证明:

创建一个用户 给其他用户发一个消息

11.jpg


22.jpg


33.jpg


传上点击查看进去 删除抓包 改包成如下 特别要把空格替换成/**/ 否则不成

44.jpg


发包之后会显示 服务器繁忙 无视之 在查看我的发件箱 直接在当前界面删除(第一次和第二次 是在2个不同地方删除) 便可删除

55.jpg


查看mysql日志

66.jpg


执行sql语句了

77.jpg


亲测可删除 网站所有 信息

修复方案:

查看其它调用del函数的地方

版权声明:转载请注明来源 玉林嘎@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2014-11-27 13:20

厂商回复:

感谢支持,我们会尽快修复此漏洞

最新状态:

2014-11-27:漏洞已修复