[公开漏洞]Flash+chrome绕过腾讯URL跳转安全检测策略

来源:WooYun 浏览:712次 时间:2014-06-19
做网站找雨过天晴工作室
Flash+chrome绕过腾讯URL跳转安全检测策略 相关厂商: 腾讯 漏洞作者:iv4n 提交时间:2014-06-19 15:33 公开时间:2014-06-19 17:59 漏洞类型:URL跳转 危害等级:低 自评Rank:1 漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞 漏洞来源:http://www.wooyun.org Tags标签: url跳转利用 Flash Chrome特性 漏洞详情 披露状态:

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

简要描述:

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

详细说明:

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

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

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



我大腾讯的QSecChecker真厉害

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



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

厂商回复:

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

最新状态:

暂无