漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-020390
漏洞标题:QQ空间某功能缺陷导致日志存储型XSS - 6
相关厂商:腾讯
漏洞作者: gainover
提交时间:2013-03-20 22:35
修复时间:2013-05-04 22:35
公开时间:2013-05-04 22:35
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-03-20: 细节已通知厂商并且等待厂商处理中
2013-03-21: 厂商已经确认,细节仅向厂商公开
2013-03-31: 细节向核心白帽子及相关领域专家公开
2013-04-10: 细节向普通白帽子公开
2013-04-20: 细节向实习白帽子公开
2013-05-04: 细节向公众公开
简要描述:
在这个系列的第一个漏洞时,由于2个缺陷点距离不远,当时就已经发现了这个问题,想着腾讯可能对第一个漏洞采用某些方式修复;如果是用 json.parse的方式修复,那么这第2个问题应该会依然存在,如我所料,于是。。。
详细说明:
1. 接着看这个系列的第一个漏洞(content_gridsblog.js)中那部分的代码。
腾讯为了修复这个漏洞,采用了更为安全的JSON.parse函数作为修复方案。这种修复是没有问题的。
其它有类似缺陷的网站可以参考腾讯的修复方案。
2. 但实际上,在这段代码下方的不远处,还存在着另外一处缺陷,如下图所示:
可以看到, oGridInfo为 JSON.parse解析出来的一个[Object]
而 oGridInfo.templateName 取出来后,没有经过任何过滤,就传入到了 innerHTML 中。
而从抓包的数据来看,json数据里的templateName 我们是可控的,那么这里就显然存在问题啦~
3. 修改日志数据包中的templateName,并发送。
4. 用另外一个号,查看已经发表的日志。 成功弹出啦。
漏洞证明:
见详细说明,由于代码逻辑上,只有他人查看日志时,才会触发此段代码,故测试时,请以第三者身份查看包含缺陷代码的日志
修复方案:
oGridInfo.templateName取出后,HTMLencode一下。
版权声明:转载请注明来源 gainover@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2013-03-21 12:43
厂商回复:
非常感谢您的报告。这个问题我们已经确认,正在与业务部门进行沟通制定解决方案。如有任何新的进展我们将会及时同步。
最新状态:
暂无