QQ Mail跨站脚本漏洞 's

admin 2017年4月18日15:32:20评论307 views字数 1659阅读5分31秒阅读模式
摘要

漏洞说明:QQ Mail是Tencent公司提供的webmail服务,你可以使用你的QQ帐户来登陆使用Mail服务,具体的信息可以访问 http://mail.qq.com/。但是80sec团队成员在QQ Mail里发现存在跨站脚本漏洞,恶意用户可以通过该漏洞在邮件里伪造登陆表单窃取目标用户的密码以及偷取Cookie以取得其他用户的身份,或者使用 ajax等技术读取用户的敏感信息。

漏洞说明:QQ Mail是Tencent公司提供的webmail服务,你可以使用你的QQ帐户来登陆使用Mail服务,具体的信息可以访问 http://mail.qq.com/。但是80sec团队成员在QQ Mail里发现存在跨站脚本漏洞,恶意用户可以通过该漏洞在邮件里伪造登陆表单窃取目标用户的密码以及偷取Cookie以取得其他用户的身份,或者使用 ajax等技术读取用户的敏感信息。

漏洞成因:QQ Mail的Javascript Dom部分在处理邮件内容,对邮件内容字符串的处理分为str和code两个流程,通过组合的标签内容可以误导Javascript处理图片内容和文字链接进入str流程,将HTML编码字符串还原为HTML标签。

漏洞测试:(已经修复)

发送如下内容即可引发XSS

<div>&lt;img src="http://src=" onerror="alert(x111)"&gt;</div> 

漏洞解析:

QQ Mail会自动解析邮件内容,发现匹配的链接将转换成HTML内容,由LinkMaker函数实现:

function LinkMaker( str ) { return str.replace( /(https?:////[/w.]+[^ /f/n/r/t/v/"///</>/[/]/u2100-/uFFFF]*)|([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+/./w+)/ig, function( s, v1, v2 ) { if ( v2 ) return [ '<a href="mailto:', v2, '">', v2, '</a>' ].join( “” ); else return [ '<a href="', s, '">', s, '</a>' ].join( “” ); } );

SwapImg函数处理邮件中IMG标签:

function SwapImg(id, ajustValue) { var as = GelTags("img", S(id)); for (var i = 0; i < as.length; i++) { if (as[i].src) { ZoomImgToBody(as[i], ajustValue); as[i].onload = function() { ZoomImgToBody(this, ajustValue, true); }; } } } 

进入str流程将会使用DOM中的innerText和textContent处理字符串,邮件中的HTML编码字符串转成HTML标签(&lt;将转换成”<”,&gt;将转换成”>”),如下的测试:

<div id="contentDiv" class="body"><div>&nbsp;</div> <div>&lt;img src="" onerror="alert(1);"&gt;</div></div> <script> v=document.getElementById("contentDiv").innerText; //ie //v=document.getElementById("contentDiv").textContent; //FIREFOX alert(v) </script> 

漏洞状态:

80sec于7.4号发现此漏洞
80sec于7.4号通知官方
Tencent于7.4号修复此漏洞
80sec于7.7号发布此漏洞公告

漏洞解决:

QQ Mail已经修补漏洞,转义字符串中的”<” ,”>”.

修改js在http://res.mail.qq.com/zh_CN/htmledition20080626/js/all.js

var str = obj.nodeValue.replace(/</g,"&lt;").replace(/>/g,"&gt;"); //1993行 

建议程序员使用DOM中的元素的时候要注意安全问题,这些元素还是由用户输入中带来的,使用之前还是需要过滤。

感谢幻影dummy和luoluo提供和调试该漏洞。

本站内容均为原创,转载请务必保留署名与链接!
QQ Mail跨站脚本漏洞:http://www.80sec.com/qqmail-xss.html

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年4月18日15:32:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   QQ Mail跨站脚本漏洞 'shttps://cn-sec.com/archives/45203.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息