黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> 入侵检测 >> 正文
·QQ Mail跨站脚本漏洞07-08·Google 的 XSS 检测工具07-08
·系统任务托盘使用小技巧07-08·巧设系统连接数 让在线电07-08
·Servebyte提供可绑米静态07-08·xp下也能像vista那样快速07-07
·利用ajax跨域盗取cookie07-07·风讯注入工具07-07
·Union查询注入技巧07-07·服务中国提供最大2G全能07-07
·六方法搞定系统终止操作07-05·诚信联合提供100M/ftp免07-05
·Server Application Err07-04·Serv-U“无法连接到服务07-04
·批量删除Word中回车的方07-04·把脉问药 让硬盘摆脱五大07-04
·绿色高效 Win+R启动常用07-04·幻宇科技提供100M/ftp全07-04
·几秒钟破解任意MD5值(附07-03·让Windows  2008共享访问07-03
·拍拍乐提供无限免费相册07-03·易生网络科技提供50M-1G07-03
·设置策略 让Windows 20007-02·与时俱进 让IE8也用上狗07-02
·受益无穷 学会任务管理器07-02·Fileupper提供免费文件存07-02
·Overpic提供免费图片文件07-02·Microsoft IE location及07-01
[推荐]QQ Mail跨站脚本漏洞
        ★★★★★

QQ Mail跨站脚本漏洞

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-7-8 9:49:15

漏洞说明: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提供和调试该漏洞。

文章录入:cainiaowang    责任编辑:xinlian 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886