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
厂商回复:非常感谢您的报告。这个问题我们经过评估,目前该业务已有一些策略应对该问题,影响较为可控,故暂不作处理。如果您有任何的疑问,欢迎反馈,我们会有专人跟进处理。
最新状态:暂无