使用JS绕过同源策略访问内网

作者:深圳市网安计算机安全检测技术有限公司 | 国际 2019/04/08 09:09:45 573
文章来源:https://www.4hou.com/technology/16901.html

       研究人员发现一种利用公网上的JS脚本发起对本地网络的攻击,攻击者使用受害者的浏览器作为代理,使代码可以到达内部主机,并开展监听活动,甚至对有漏洞的服务发起攻击。

       同源策略是限制不同源的页面进行交互的web app安全模型,该模型并没有完全拦截该方法,因为浏览器可以访问本地主机和本地网络,所以可以绕过防火墙。

       Forcepoint的安全研究员承认该攻击技术并不是第一次出现,社区开发人员已经注意到该技术了。

绕过同源策略

       该技术利用的是浏览器中的SOP函数功能,允许两个不同源进行交叉源嵌入、写和拦截写。

在特定场景中,这意味着有可能发送跨域的请求,但是JS代码无法读取这样的响应。结果就是对本地网络的单向访问。

       JS错误可以在监测阶段提供一些有价值的信息,通过家用路由器中常见的CSRF漏洞可以利用同一网络上的一些设备。

       研究人员称攻击者可以利用公网上的恶意JS发现内外上的主机、进行有限的端口扫描和服务指纹获取。

       在所有的攻击可能性中,Forcepoint列出了通过修改访问密码、配置数据或入侵有漏洞的设备等方式来获得受害者路由器的控制权。

       如果允许与LAN的通信,同时浏览器配置不安全,那么就有可能将Tor用户去匿名化。使用CSRF,路由器可以ping外部主机来显示Tor用户的真实IP地址。

       攻击者也可以用JS来找到受害者的内部IP地址,然后猜测网络上其他主机的IP地址。

使用JS绕过同源策略访问内网

       在主机进行端口扫描是一种检车推测有效性的方式。这可以限制任意开放的端口和服务,以及计划攻击的详情。

       因为SOP,JS无法读取到主机的直接HTTP连接的响应。但是加载来自主机HTTP端口的图像可能会发送onerror或onload事件,表明端口可能是开放的,timeout表示端口是关闭的。该方法有可能出现假阳性的结果。

       在了解了本地IP地址并进行合理猜测后,就可以创建一个对这些主机进行端口扫描的恶意页面了。嵌入端口扫描JS代码的HTML文件位于其他域名上,可以是公网上的服务器或域名。

使用JS绕过同源策略访问内网

       通过端口扫描的结果,攻击者可以找出用户可能在使用的服务。

       因为SOP的限制,JS无法读取页面的内容,但是可以使用特定服务默认图像来触发onerror和onload事件来进行决策。

使用JS绕过同源策略访问内网

       这样获取的信息可以被用于发起针对特定目标的攻击。根据目标,研究任意称可以从公网浏览受害者的内部网络。

       其中一个例子是易受到XSS攻击、配置为与内部页面通信的目标网站。在下面的教学页面上运行恶意JS代码。

使用JS绕过同源策略访问内网

如何应对?

       应对的方法是通过web代理访问外网。如果没有代理选项,可以尝试连接到私有IP地址来监测外部JS代码。

完整报告下载地址:https://www.forcepoint.com/sites/default/files/resources/files/report-attacking-internal-network-en_0.pdf


推荐关注

指导单位
广东省公安厅网络警察总队 广东省信息安全等级保护协调小组办公室