漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-065613
漏洞标题:微信某示例代码函数使用不当可能会导致第三方厂商躺枪
相关厂商:腾讯
漏洞作者: 索马里的海贼
提交时间:2014-06-20 15:40
修复时间:2014-09-18 15:42
公开时间:2014-09-18 15:42
漏洞类型:默认配置不当
危害等级:中
自评Rank:15
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-06-20: 细节已通知厂商并且等待厂商处理中
2014-06-23: 厂商已经确认,细节仅向厂商公开
2014-06-26: 细节向第三方安全合作伙伴开放
2014-08-17: 细节向核心白帽子及相关领域专家公开
2014-08-27: 细节向普通白帽子公开
2014-09-06: 细节向实习白帽子公开
2014-09-18: 细节向公众公开
简要描述:
起了一个坏头,潜在影响包括最新版discuzx3.2等
详细说明:
从官方下了最新的微信开放平台接入示例文件(php)
http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip
wx_sample.php行27
使用了simplexml_load_string函数来解析post过来的xml 这个函数存在xxe威胁
再来看看权限检查的过程
http://mp.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
如果TOKEN未初始化 因为$timestamp和$nonce又来自用户提交 所以可以构造出合法的signature绕过函数的检查。
漏洞证明:
WooYun: PHPYUN最新版任意文件读取漏洞
WooYun: PHPYUN最新版XML注入及SQL注入获取管理员账号(无视任何防御)
这两个phpyun的虽然没公开 但根据厂家回复基本能确定就是微信api出的问题
另外最新版discuzx3.2也是 默认安装就带有微信插件,但是未启用。换而言之 未初始化TOKEN。
/source/plugin/wechat/wechat.lib.class.php行153
这里先调用了_checkSignature()检查权限,在未初始化状态下,可以用上面说的提交timestamp、nonce和对应的signature绕过检查进入下面的simplexml_load_string
不过很可惜未启用插件的话$hook也一样没初始化 所以_activeHook将找不到对应的class去操作。这里没法形成安全漏洞。不过如果有后台权限可以配置插件的话就另说了。
反正DZ跟你们是一家 就在这说了一样。
修复方案:
慎用simplexml_load_string
检查权限之前判断是否初始化了token
示例代码要用心啊。。人家都是很放心的用你的代码的。
版权声明:转载请注明来源 索马里的海贼@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:1
确认时间:2014-06-23 16:53
厂商回复:
非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。
最新状态:
暂无