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

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

缺陷编号:wooyun-2013-016984

漏洞标题:PhpcmsV9 SQL注射 2013年贺岁第一发

相关厂商:phpcms

漏洞作者: 我想拿个shell

提交时间:2013-01-06 11:39

修复时间:2013-02-20 11:40

公开时间:2013-02-20 11:40

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-01-06: 细节已通知厂商并且等待厂商处理中
2013-01-06: 厂商已经确认,细节仅向厂商公开
2013-01-16: 细节向核心白帽子及相关领域专家公开
2013-01-26: 细节向普通白帽子公开
2013-02-05: 细节向实习白帽子公开
2013-02-20: 细节向公众公开

简要描述:

先来发一枚有条件的SQL注射打底,如果我说我连载,会有人关注我么。
我想至少明后我会连载一下。

详细说明:

在phpcmsv9的通行证程序内。
phpsso_server/phpcms/modules/phpsso/classes/phpsso.class.php
内的一行代码

if(get_magic_quotes_gpc()) {
$this->data = new_stripslashes($this->data);
}


这里的输入在magic_quotes_gpc开启的时候居然stripslashes了。。。
然后就没有然后了。。。。。

漏洞证明:

在开启magic_quotes_gpc的环境下,去到phpcms登陆的界面,输入
xxxxxxxxxxxx' or '1
密码随意输入,提示“密码错误”而非“账户不存在”就证明你可以注入了。

phpcms0106.jpg


为什么提示不一样??如下

if($status == -1) {	//用户不存在
showmessage(L('user_not_exist'), 'index.php?m=member&c=index&a=login');
} elseif($status == -2) { //密码错误
showmessage(L('password_error'), 'index.php?m=member&c=index&a=login');
} else {
showmessage(L('login_failure'), 'index.php?m=member&c=index&a=login');
}


若把v9_sso_applications中的数据读出来,这就是一个严重漏洞了。

修复方案:

其实没必要stripslashes。

版权声明:转载请注明来源 我想拿个shell@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2013-01-06 14:10

厂商回复:

非常感谢!!

最新状态:

暂无