漏洞详情

披露状态:

2014-06-19: 细节已通知厂商并且等待厂商处理中
2014-06-19: 厂商已查看当前漏洞内容,细节仅向厂商公开
2014-06-19: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

Web中URL跳转漏洞是因为总有一些不靠谱的修复方案,虽然这是Chrome的坑。

详细说明:

登陆了tx首页,一堆Flash广告真头疼,TX的Flash广告变化挺快的,看看有木有漏洞。

找啊找啊,找不到XSF,看到个navigateToURL,第二个参数还是"_blank",跳转也收了吧。

code 区域
if (QSecChecker.checkLegalUrl(param1))
{
navigateToURL(new URLRequest(param1), "_blank");
}



我大腾讯的QSecChecker真厉害

code 区域
public static function checkLegalUrl(param1:String) : Boolean
{
if (!param1 || checkIsLocalPath(param1))
{
return true;
}
var _loc_2:* = param1.split("/")[2];
return checkLegalDomain(_loc_2);
}// end function



code 区域
public static function checkIsLocalPath(param1:String) : Boolean
{
param1 = trim(param1);
var _loc_2:* = /^(http:\/\/|https:\/\/|\/\/)""^(http:\/\/|https:\/\/|\/\/)/gi;
return !_loc_2.test(param1);
}// end function





上面两段代码比较简单,就是先检测是否是相对路径,如果是,则直接返回true,跳转;如果不是,则进行白名单校验。

先看了下相对路径的判断方法:如果不是以 http://, https://,或者//开头的,就算相对路径。



不过这让我想到了一个绕过的方法,放出Chrome的一个小tips。



Chrome浏览器有个可(zuo)爱(si)的小特性,就是http:与//之间(包括连个斜杠之间),可以插入\,不影响url请求,比如:

http:/\/baidu.com

http:\//baidu.com

/\/baidu.com

http:\\\//baidu.com



借用这个特性,我大TX的QSecChecker的相对路径检测就被轻松绕过了,O(∩_∩)O哈哈~。

http://ra.gtimg.com/adsame/1682215/20100.swf?clickurl=http:\//baidu.com

漏洞证明:

看了2个广告,都是这个模板的。

条件:chrome浏览器,点击触发:

http://ra.gtimg.com/adsame/1682215/20100.swf?clickurl=http:\//baidu.com

http://ra.gtimg.com/adsame/1682215/400300.swf?clickurl=http:\//baidu.com



修复方案:

判断相对路径这里考虑一下

版权声明:转载请注明来源 iv4n@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-06-19 17:59

厂商回复:

非常感谢您的报告。这个问题我们经过评估,目前该业务已有一些策略应对该问题,影响较为可控,故暂不作处理。如果您有任何的疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

易霖博信息安全攻防实验室:本站部分内容来自互联网,版权归原作者所有,如不慎侵害到您的相关权益,请留言告知,我们将尽快处理,谢谢!(Part of the information in our website is from the internet.If by any chance it violates your rights,we will delete it upon notification as soon as possible.Thank you for cooperation.)