漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-091314
漏洞标题:phpcmsV9.5.8 设计缺陷可获取phpsso_auth_key(可用于sql注入等)
相关厂商:phpcms
漏洞作者: roker
提交时间:2015-01-12 10:37
修复时间:2015-04-02 10:23
公开时间:2015-04-02 10:23
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:15
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-01-12: 细节已通知厂商并且等待厂商处理中
2015-01-17: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-03-13: 细节向核心白帽子及相关领域专家公开
2015-03-23: 细节向普通白帽子公开
2015-04-02: 细节向实习白帽子公开
2015-04-02: 细节向公众公开
简要描述:
rt
详细说明:
@索马里的海贼
@Map
向前辈致敬。:)
-----------------------------------------------------------------------------------------
回顾前两个漏洞,
WooYun: PHPCMS V9 一个为所欲为的漏洞
WooYun: phpcms最新版绕过全局防御暴力注入(官网演示)
皆是由于 密钥 的泄露所造成的。 第一个漏洞 直接输出了phpsso_auth_key。第二个则是 输出了加密了的auth_key ,然后根据算法弱IV的缺陷进行了还原。
这次的漏洞则是 泄露了 加密了的phpsso_auth_key。
----------------------------------------------------------------------------------------
/phpcms/modules/member/index.php
继续跟到auth_data
/phpcms/modules/member/classes/client.class.php
将 uid=x&ps_auth_key=phpsso_auth_key 这串数据 加密后 通过模板输出了。
访问 http://localhost/index.php?m=member&c=index&a=account_manage_avatar&t=1
base64解码后
data=后面的字符串即为
通过$this->sys_auth所加密后的数据。而在 /phpcms/modules/member/classes/client.class.php 中的sys_auth 其默认key 为 phpsso_auth_key。
我们再找一处 已知明文的用 phpsso_auth_key 这个密钥所加密的数据。由于弱iv可碰撞,我们就可以得到 phpsso_auth_key 的值。
在前台登入时,phpcms会向 api/phpsso.php 发送会员数据 用以支持 单点登录。而这个数据正是由phpsso_auth_key 这个密钥所加密的。
在登入时抓包
code 后面的 密文所对应的明文格式为
time() 就在 我们抓的包里的 time参数所对应的值 ,uid 在我们的会员头像的路径中可以看到
与 WooYun: phpcms最新版绕过全局防御暴力注入(官网演示) 的原理一样,多登入几次,获取足够的code。
需注意的是 User-Agent 和 cookie 不要填错了。
找到 code为7499开头的
填入poc(注意time 和 uid)
得到 ce8e83e7d1g15d1b01f46d<fa492cdefce8e83e7d157ae10c7ff468a4792cdefce8e83e7d157ae10c7f
分段得
中间那个即为 keyd了,接下来就是解密 phpsso_auth_key 了
去掉后四位就是 phpsso_auth_key 了。
拿到phpsso_auth_key 后能做的事情太多了,在api/phpsso.php这个文件里面 我们控制 action的值 就能操作全站的会员数据。
当然 也可以注入。修改cookie并访问。
漏洞证明:
修复方案:
你们更专业
版权声明:转载请注明来源 roker@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2015-04-02 10:23
厂商回复:
漏洞Rank:15 (WooYun评价)
最新状态:
2015-01-19:擦。谁给忽略了?太不地道了