target=“_blank”属性引入的漏洞总结

target=”_blank”应用场景

该属性通常情况主要注重相关用户体验而产生,其本意就是在用户点击一个链接的时候是否在新窗口中打开还是在原窗口打开进行分别,比如百度页面:当我们在百度搜索框中输入内容,然后点击“百度一下”时是不会跳出一个新页面,而在搜索结果列表时,点击列表链接是会重新跳出一个标签页或浏览器窗口(chrome中文网和旧版本ie不同,旧版本ie重新跳一个窗口,chrome是打开新标签页),新版本IE和Chrome都是打开新的标签页。
IE版本
新标签页打开
新标签页打开

target=”_blank”安全隐患分析

使用该属性来打开新标签或者新窗口时,站点会通过window.openr API给了新页面对原有窗口的访问入口,并授予一些权限,其中window.location是没有被跨域限制拦截的。这可能就存在一个安全隐患

2.1 钓鱼例子

下是cmswing网站发布博文为例(纯属演示,请勿模仿):
测试页面代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script lang="javascript">
      console.log(123,window.opener)
      if (window.opener) {
        alert('opener')
        window.opener.location = 'http://www.baidu.com'
      }
    </script>
  </body>
</html>

进入博客发布博文,点击超链接,输入演示网站,并选择新窗口页面打开:
在这里插入图片描述

其他按要求填写发布博文,回到博文列表看到自己刚发布的博文,并点开:
在这里插入图片描述

上图显示博文中有刚才插入的演示链接,点击链接发现以下情况:
在这里插入图片描述

因此可以发现,原页面已经跳到百度,此时非常明显地发现了原页面已经跳转,但是如果此时是黑客将原页面跳转至其精心模拟的社区盗版网站,并且页面标题一样,很少有人会去关注地址栏的信息变化。此时若是测试网站也是一个非常精美的网络段子,比如是糗事百科,我们还会因为搞笑而驻足浏览了很长时间,等到回到hi社区盗版网站时发现,网站提示你:多久多久没有操作,请重新登入,那么一登陆,黑客网站获取用户名密码同时返回给你一个正确的登入页面,不知不觉的被盗走了用户名密码。

上述这种情况,比较危险的是邮件中发来一个链接,比如验证登入等等之类,改密码之类的邮件都有链接。获取邮箱用户名密码后,还可以跟邮箱中的联系人进行链式钓鱼。

因此可以发现,原页面已经跳到百度,此时非常明显地发现了原页面已经跳转,但是如果此时是黑客将原页面跳转至其精心模拟的hi社区盗版网站,并且页面标题一样,很少有人会去关注地址栏的信息变化。此时若是测试网站也是一个非常精美的网络段子,比如是糗事百科,我们还会因为搞笑而驻足浏览了很长时间,等到回到hi社区盗版网站时发现,网站提示你:多久多久没有操作,请重新登入,那么一登陆,黑客网站获取用户名密码同时返回给你一个正确的登入页面,不知不觉的被盗走了用户名密码。

上述这种情况,比较危险的是邮件中发来一个链接,比如验证登入等等之类,改密码之类的邮件都有链接。获取邮箱用户名密码后,还可以跟邮箱中的联系人进行链式钓鱼

2.2 漏洞存在原理

当我们开发人员不注意添加rel=“noopener”(火狐浏览器中要使用rel="noopener noreferrer"完整覆盖)或者社区网站,邮件等可以添加链接的方式传播知识或重要的邮件时,这都很可能就被黑客用来进行钓鱼的一个可大可小的漏洞存在。

这其实就是利用target=”_blank”触发window.openr API实现,其中window.location还是浏览器跨域访问的漏网之鱼,利用这种方式,只要在链接网页的Javascript中添加以下代码就可以很容易实现钓鱼。

if(window.opener){
    window.opener.location = "链接的网页地址";
}

2.4 解决方法

  1. 最简单的方法是所有跳转链接都在原窗口打开。

  2. 通过Java后台分析富文本中超链接所带的标签中是否存在target=”_blank”,存在则单独给标签添加rel=“noopener”属性。Rel属性可以很好的屏蔽关于target=”_blank”漏洞存在。这种方式最好是在后台编码添加这个属性,通过js方式并不是很好的防范措施。

  3. 由于大部分邮箱、博客等等网站存在这个漏洞,如果每一项都单独对页面修改会有非常大的工作量,并且会出现纰漏,因此对于这个漏洞的防范,最好通过写一个补丁文件来修补一个网站所有页面。

总结分析

关于target=”_blank”漏洞的发现已经有段时间,然后由于这个漏洞的攻击方式没有被展开,因此在短时间内还没有出现大规模的攻击案例,并且Google将该漏洞防范退给了浏览器,因此是被严重忽视的一个漏洞存在。

漏洞攻击都是存在随机性和盲目性,只有想不到,没有做不到。这种钓鱼方式所需要的成本会增加,但是对于攻击范围和攻击力度来说也是非常大的,当获取网站个人用户名密码后,完全可以实施链式钓鱼,并且这种链式钓鱼会呈现正反馈信任方式增加危险,当攻击了一个邮箱,那么通过该用户名和密码可以对邮箱内的成员攻击(甚至可以添加蠕虫代码自动攻击获取大量用户信息),此时已经是作为一个认识的人来操作带有黑客链接的网页了,增加了信任度。

因此解决上述存在漏洞是一个必要的条件,以防止真正大规模攻击实例出现。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fastjson <= 1.2.80 存在反序列化任意代码执行漏洞。该漏洞利用黑白名单防御机制的绕过,即使autoType关闭也可能导致远程命令执行漏洞。这个漏洞的利用门槛较低,可以绕过默认限制攻击远程服务器,风险影响较大。建议fastjson用户立即采取安全措施来保护系统安全。对受影响的特定依赖≤1.2.80的情况下会有影响。为了解决这个问题,可以采取以下几种安全措施: 1. 升级到最新版本1.2.83,该版本修复了此次发现的漏洞。注意,该版本中涉及autotype行为变更,可能在某些场景下存在不兼容情况。如果遇到问题,可以到fastjson的Github页面寻求帮助。 2. 在1.2.68及之后的版本中引入了safeMode,可以通过配置safeMode来关闭autoType功能。这样无论是白名单还是黑名单,都不支持autoType,可以防止反序列化Gadgets类的变种攻击。但是请注意,在关闭autoType之前要充分评估对业务的影响。具体的配置方法可以参考fastjson的Wiki页面。 3. 考虑升级到fastjson v2版本,可以参考fastjson的Github页面了解相关信息。 总结起来,为了解决fastjson <= 1.2.80 反序列化任意代码执行漏洞,建议采取上述的安全措施,包括升级到最新版本、配置safeMode关闭autoType功能或者考虑升级到fastjson v2版本。这样可以防止漏洞的利用,并提升系统的安全性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [fastjson1.2.8 反序列化远程代码执行漏洞](https://download.csdn.net/download/xiazai_ceshi/18466350)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [fastjson <= 1.2.80 反序列化任意代码执行漏洞](https://blog.csdn.net/qq_18209847/article/details/124952791)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值