漏洞概要 关注数(51) 关注此漏洞
缺陷编号: WooYun-2014-52019
漏洞标题: phpcmsV9某sql注射漏洞
相关厂商: phpcms
漏洞作者: kobin97
提交时间: 2014-02-25 22:24
公开时间: 2014-05-23 22:25
漏洞类型: SQL注射漏洞
危害等级: 中
自评Rank: 10
漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: php+字符类型注射 注射技巧
漏洞详情
披露状态:
2014-02-25: 细节已通知厂商并且等待厂商处理中
2014-03-07: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-05-01: 细节向核心白帽子及相关领域专家公开
2014-05-11: 细节向普通白帽子公开
2014-05-21: 细节向实习白帽子公开
2014-05-23: 细节向公众公开
简要描述:
别人说最危险的地方最安全,我说最安全的地方最危险。。。
相信你们也没有想到这个最常见,常常会在各种教程出现的地方会存在SQL注射。。。
需 GPC OFF
详细说明:
首先,我们看登陆的地方。。最常见了吧。。。
**.**.**.**/index.php?m=member&c=index&a=login
默认安装情况下,会使有 V9自带的用户中心。
phpcms\modules\member\index.php
可以看到用户名密码交给了
$this->client->ps_member_login($username, $password);
我们跟进。
phpcms\modules\member\classes\client.class.php
$return = $this->_ps_send('login', array('username'=>$username, 'password'=>$password));
_ps_stripslashes
还原了 GPC,传参数给 API。
我们再看看 API 方的处理方式
phpsso_server\phpcms\modules\phpsso\classes\phpsso.class.php
parse_str 函数默认是根据 GPC情况过滤。
再到
phpsso_server\phpcms\modules\phpsso\index.php
phpsso_server\phpcms\libs\classes\model.class.php
可以看到全程没有对字符串进行过滤。。。
因此,在GPC为 OFF 时,存在SQL注入。
可能没说清楚问题在那里
两个:
1、auth_data 参数拼接
2、api中没有对数据进行过滤
可以做什么?盲注,任意用户登陆。。。其实还有很多利用的地方。。
测试如下:
漏洞证明:
修复方案:
过滤
版权声明:转载请注明来源 kobin97@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-05-23 22:25
厂商回复:
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值