开发者社区> 玄学酱> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法

简介: 本文讲的是通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法,原来的问题是无域网页(即具有空的document.domains的url)可以访问到任何文档来源的DOM,所以微软对他们添加一个随机域(GUID)进行修补。
+关注继续查看
本文讲的是通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法原来的问题是无域网页(即具有空的document.domains的url)可以访问到任何文档来源的DOM,所以微软对他们添加一个随机域(GUID)进行修补。换句话说,无域空白网页现在已经不是空白的了。他们始终表现为{53394a4f-8c04-46ab-94af-3ab86ffcfd4c}这样的随机域名。

通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法

当我测试这个补丁的时候,我立即发现这个补丁从根本上解决了上述问题。我一开始的目标是分析这个补丁然后尝试绕过它,但是现在当我看到这个URL,它提醒了我Edge在某种程度上继承了IE的内部网络区域。所以,我在这一方面做了做文章。

内网 VS 互联网

你可能知道:浏览器对在内网中运行的网页比在互联网中运行的网页限制较少。而Edge是根据URL中有没有”.”判断内网页面与互联网页面,并且选择相应的判断机制。
当访问的域名没有点时,如http://localhost,Edge会认为这个页面来自于内网,对这个页面控制相对较少。当访问相同的网站,如:http://localhost.com时,Edge会认为来自于互联网,对这个页面控制比较严格。

Edge的判断是URL中不存在点,那么这个网站就是内网网站,当然,about:blank同样被认为是内网网站。

因此,如果我们通过欺骗Edge让它认为我们的网站是内网网站,那么我们就不会有那么多的安全限制。举个例子,禁用弹出窗口拦截器,xss过滤器,甚至启用SuperNavigate(可以引用不在域中的iframe以及windows的功能)。我们稍后会看到这个功能到底有多强大,但首先让我们看看在IE内网区域中有什么可能的。我知道我们正在谈论Edge,但是IE有一个简单的英文简单对话框,方便用户查看内网区域中哪些安全功能被禁用。

通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法

进入内网

上面的屏幕截图显示了至少有三个有趣的功能,如果能够进入内网,攻击者则可以使用它们。而事实证明,GUID使Edge认为我们在内网区域,然后允许我们绕过所有这些限制。所以根据这个漏洞,一旦我们进入内网,攻击变得非常容易,所以让我们开始吧。

1.在顶部加载data:url。我们本地现在是data,但是域名和加载此数据的域名相同。所以,我们现在还是在内网中。
2.使用document.write方法将data:url进行输出,这样他会返回给我们一个URL,但是这个域名是一个随机的GUID。所以我们已经进入到内网中。

Edge尝试阻止我们在顶部加载data:url,不过现在flash可以让我们加载它。所以我们通过flash执行一个简单的geturl方法。请看下面的代码。我们正在将一个Flash渲染在一个iframe中,Flash本身会通过一个data:url来更改顶部窗口的URL。

<iframe></iframe>
<script>
window[0].location.replace('geturl.swf?TARGET=_top&REDIR=data:,'+
'<script>window.onload=function(){'+
'           document.write("We are in a GUID URL (Intranet Zone) now");'+
'           document.close();'+
'}</script>');
</script>

而且,将Flash放在iframe中是很重要的,否则Edge会拦截。但无论如何,一旦执行成功,我们就在内网区域。所以,让我们现在攻击吧~

内网中的攻击

以下三个POC都是基于通过上方代码进入内网区域的,然后再运行下面的内容。此外,payload会从外部脚本进行加载,以便我们可以更方便的工作。我不喜欢在data:url中对大量代码进行编码,因为这样容易使我混淆。

我们来看看如何绕过弹窗阻止程序。请注意,一旦您点击下面的POC链接,它将打开5个弹出窗口,无需您的互动。代码的工作原理就好像弹出窗口阻止程序不存在一样。

for (var i=0; i<5; i++)
{
   window.open("http://www.bing.com","","width=200,height=600");
}

通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法

绕过弹窗阻止程序POC:https://www.cracking.com.ar/demos/intranetzone/pop
这太棒了,现在我们可以没有限制的弹出任何窗口,所以我们绕过了弹窗阻止程序。那么,关于XSS过滤器我们怎么绕过呢?现在让我在另外一个网站执行XSS, caballero.com.ar:

window.open("https://www.caballero.com.ar/echo.php?xss=<script>alert(document.domain)</script>","_self");

绕过XSS过滤器POC:https://www.cracking.com.ar/demos/intranetzone/xssbypass/

提醒一下,这些POC只能在内网环境中执行。事实上,把这种方法叫做一种攻击并不正确,因为这是在内网中的默认行为。我们做的只是将我们的工作环境转移到域里面,以便减少限制。这就是这个漏洞的原理,现在让我们再多介绍一种:SuperNavigate。你知道他是干什么的吗?他允许攻击者更改来自任意域的任意窗口以及iframe的url。

也许你现在有点困惑。现在我通过举个例子来解释一下:他允许攻击者更改在不同选项卡中运行的twitter中iframe的url。换句话说,我们不需要打开twitter那个选项卡。如果用户已经打开了twitter,我们实际上就可以和他一起进入内网区域。现在我们更改一个来自twitter命名为”twitter-iframe”的iframe的url。想看一看它怎么样工作的?

通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法

首先,让我们看一下这个iframe的代码:

win  = window.open("https://www.twitter.com");

function wait_for_tweet_post_iframe()
{
    // Wait until the twitter iframe exists
    if (win["tweet-post-iframe"])
    {   //Change the location of the twitter-iframe. This fires the prompt
        window.open("twitter_pass.html", "tweet-post-iframe");
        clearInterval(interval);
    }
}
// Keep running until the twitter-iframe becomes available
interval = setInterval(wait_for_tweet_post_iframe, 500);

在twitter网页上绕过SuperNavigate的POC:https://www.cracking.com.ar/demos/intranetzone/supernavigate/多么有趣呀,最后一件事情,也许你注意到Twitter的提示似乎真的来自一个Twitter域名。您知道,当提示处于打开状态时,它始终显示启动它的URL的域,就像这样:

通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法

但是,可以使用一个非常简单的方法来去掉这个提示,也就是说,可以通过about:blank来发出这样一个提示。换句话说,它重置了这个域名的提示。

通过伪造内网网站绕过弹出窗口屏蔽、XSS过滤器以及Navigate方法

我知道这没什么大不了,但是会使这个弹框更像真正twitter发出的。




原文发布时间为:2017年4月5日
本文作者:xnianq
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
关于网站防范XSS攻击的几点思考
关于网站防范XSS攻击的几点思考
0 0
网站被XSS攻击危害到底有多大
大家可能也会遇到过一些情况,比如一些企业网站或流量比较大的网站都会出现被跳转到菠菜违法广告。网页挂马的这种形式,比如说它可以生成JS代码,然后给你挂一个XSS跨站攻击这样的一个代码,当你是一个较老的浏览器,可以利用浏览器的这种漏洞直接攻击你的操作系统,从而获得较高的系统权限。
0 0
网站安全公司之网站XSS攻击的危害介绍
笔者认为,这篇文章的完成,是一件高兴的事。由于本文是国内首本专门论述XSS的著作,因此本文的推出,为学习网络安全的新人提供了充足的学习材料,同时也为安全工作者提供了一份不可多得的参考手册,必将促使大家更加重视XSS安全技术。XSS攻击的危害一直未被多数开发者正确认识,甚至一些网络安全工作者也认为XSS「危害不大」。引起这一误解的原因很多。XSS攻击的危害是与特定的业务场景息息相关的。由于业务场景的不同,导致了不同的网络安全问题,其中有些场景风险大,有些场景风险小。但XSS作为一种漏洞类型,在描述其定义时很难将其定位到具体情况中。XSS攻击的危害程度,取决于业务场景的重要性程度。
0 0
网站xss漏洞修复方案与安全建议详情
很多公司的网站维护者都会问,到底什么XSS跨站漏洞?简单来说XSS,也叫跨站漏洞,攻击者对网站代码进行攻击检测,对前端输入的地方注入了XSS攻击代码,并写入到网站中,使用户访问该网站的时候,自动加载恶意的JS代码并执行,通过XSS跨站漏洞可以获取网站用户的cookies以及seeion值,来窃取用户的账号密码等等的攻击行为,很多客户收到了网警发出的信息安全等级保护的网站漏洞整改书,说网站存在XSS跨站漏洞,客户找到我们SINE安全公司寻求对该漏洞的修复以及解决。针对这种情况,我们来深入了解下XSS,以及该如何修复这种漏洞。
0 0
怎样利用XSS漏洞在其它网站注入链接?
怎样利用XSS漏洞在其它网站注入链接?
0 0
如何修复网站XSS漏洞 过滤script等攻击参数来解决
很多公司的网站维护者都会问,到底什么XSS跨站漏洞?简单来说XSS,也叫跨站漏洞,攻击者对网站代码进行攻击检测,对前端输入的地方注入了XSS攻击代码,并写入到网站中,使用户访问该网站的时候,自动加载恶意的JS代码并执行,通过XSS跨站漏洞可以获取网站用户的cookies以及seeion值,来窃取用户的账号密码等等的攻击行为,很多客户收到了网警发出的信息安全等级保护的网站漏洞整改书,说网站存在XSS跨站漏洞,客户找到我们SINE安全公司寻求对该漏洞的修复以及解决。
2784 0
通过代码审计找出网站中的XSS漏洞实战(三)
一、背景 笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为快速找出网站中可能存在的XSS漏洞实践(一)https://segmentfault.com/a/1190000016095198 本文主要记录通过代码审计的方式进行XSS漏洞挖掘,分为了找出关键位置,正向审计,反向审计三个部分,审计的系统为permeate渗透测试系统,测试系统的搭建可以参考笔者的第一篇文章。
1108 0
快速找出网站中可能存在的XSS漏洞实践(一)
版权声明:作者:汤青松 https://blog.csdn.net/u013431141/article/details/81911969 一、背景 笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程,课程当中有讲到XSS的挖掘方式,所以在录制课程之前需要做大量实践案例,最近视频已经录制完成,准备将这些XSS漏洞的挖掘过程记录下来,方便自己也方便他人。
990 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载