前言 去年我们提到了一种在Edge上实现引用欺骗的非常简单的技术,它允许我们实现引用欺骗甚至绕过XSS过滤。今天我发现问题已解决,所以我决定尝试在补丁上找到问题。说实话,我认为这只是攻击的一种变体,而不是旁路。从实际的角度来看,该技术再次绕过补丁和攻击,但从技术角度来看,新方法略有不同。无论如何,让我们一起探索它。 漏洞修复前的PoC 在上一篇文章中,我们提到过我们可以通过简单地打开一个带有所需引用的新窗口然后跳转到目标来实现引用欺骗。针对成千上万个文本的两行代码,请看下面的poc代码,whatismyreferer.com将是paypal.com作为referer,实际上referer应该是location.href页面。 1 2 赢得 = window.open('https://www.paypal.com'); Win.location.href = 'https://www.whatismyreferer.com'; 这足以在Edge上实现引用欺骗,但此问题现已得到修复。但是,我提出了一个简单的变体,没有调试和分析,只是一个大胆的尝试。我尝试了许多方法来更改最终的URL(使用location.replace,meta refresh,window.open等而不是location.href)来测试Edge是否可以再次欺骗,不幸的是所有尝试都失败了。但是如果iframe内部更改了URL会发生什么?引用值是顶级或iframe URL吗? 玩转referer 在回答上一个问题之前,请记住引用者应始终是设置URL的引用者。假设我们的fackbook.com附带一个指向evil.com的iframe。如果iframe将顶部URL更改为paypal.com,则paypal收到的引用应该是邪恶而不是facebook。
上图显示了Edge上的预期(正确)行为。但是,如果我们使用location.href设置有向链接而不是使用常规链接,则Edge是愚蠢的,并且它使用顶部地址作为引用。
下面是一个简单的测试页面,显示了使用常规链接和location.href更改顶部URL之间的区别。他们都将跳转到whereismyreferer.com,但正如您将看到的,常规链接行为是正确的,并且top.location.href行为不正确。[展示漏洞的页面] 但是我们如何利用此漏洞?显然在facebook上加载evil.com是不可能的,对吧?然而,几乎所有主要的网站,如Facebook和雅虎将加载iframe广告。这些广告可以在这些大型网站上加载任何网页。当然,这些广告也可以使用top.location.href来绕过XSS过滤。 就我而言,我讨厌理论上的漏洞,因为它们并不让我感到满意。因此,我们的目标是加载一个网站(我们想要欺骗的引用者),将iframe注入其中,然后通过注入的iframe中的top.location.href跳转到目标站点。简单地说,我们希望whatismyreferer.com(目标)相信用户从paypal.com(欺骗性引用者)跳过,我们该怎么做? 注入iframe 1.打开一个新窗口并重定向到paypal。 2.在跳转之前注入iframe。 3.重定向后,iframe内部实现了指向whatismyreferer.com的top.location。 这个iframe注入之前在IE上的htmlFile/UXSS文章中提到过,我们将在这里简要回顾一下。当我们打开一个新窗口(1)时,我们可以注入任何我们想要的东西,因为我们仍然在当前域中。这是注入iframe(2)的最佳时间。然后,一旦重定向发生,Edge将尝试从页面中删除所有内容(包括我们的iframe)并渲染paypal。但是,我们将简单地阻止该线程。 如何阻止线程?在这种特殊情况下,我们将使用与此处相同的技术,只是一个丑陋的可见粗体警报。当然,我们有很多方法可以阻止线程并且不会弹出警报,但我们不会在这里提供它们。然后让我们创建一个POC! 1 2 3 4 五 6 7 8 9 10 11 12 13 // 打开 一个 新 窗口 与 一个 服务器 重定向 到 paypal Var win = window.open('redir.php?URL=https://www.paypal.com'); // 立即创建 iframe 之前 重定向 Var ifr = win.document.createElement('iframe'); win.document.appendChild(IFR); // 使 确保 iframe 有 访问 到 其 顶部 (否则 它 将 丢失 它) Win [0] .opener = win; // 块 iframe 和 一旦 重定向 发生, 将 移动到 受害者 网站。 Win [0] .setTimeout('('关闭 我 一次 站点 开始 加载 后面');' + 'openner.location='https://www.whatismyreferer.com'');
Edge上的POC 本文由乘客安全翻译,作者:scriptkid 原文链接:https://www.brokenbrowser.com/referer-spoofing-patch-bypass/ 黑客业务列表介绍和一般分类: 类别:攻击入侵破解开发 1:攻击业务订单:暂时取消所有此类业务订单[仅销售常规IDC流量] 2:入侵业务清单:包括网站源代码,办公系统,黑色系统,教育系统等。 3:破解业务类:软件,加密文件,二次打包,脱壳等。 4:二次开发业务清单:软件二次开发,源代码二次开发等 5:其他业务订单:特洛伊木马[通过所有防病毒],远程控制,特殊软件等 备注:未提及的业务订单可根据主要类别查询或直接联系客户服务。为避免浪费双方时间,请在咨询前阅读:业务交易流程及相关说明 注意:仅接受正式业务,个人无权接受。收集此内容。