V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cnxobo
V2EX  ›  分享发现

The target="_blank" 漏洞, V2EX 网站也中招了

  •  
  •   cnxobo · 2016-09-09 15:06:33 +08:00 · 6404 次点击
    这是一个创建于 3001 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作者:洋葱猴 链接: https://zhuanlan.zhihu.com/p/22231471 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    国外网友近日曝出大部分网站都忽视了的安全漏洞,包括 Facebook , Twitter 等网站都被检测出带有 The target="_blank" 漏洞,据查该漏洞很早就被提交出来但一直被“忽视”,这可能是有史以来最被低估的漏洞。

    你可以点击 这个 Demo http://tvvocold.coding.me/target_blank_vulnerability/ 测试该安全问题:带有 target="_blank" 跳转的网页拥有了浏览器 window.opener 对象赋予的对原网页的跳转权限,这可能会被恶意网站利用,例如一个恶意网站在某 UGC 网站 Po 了其恶意网址,该 UGC 网站用户在新窗口打开页面时,恶意网站利用该漏洞将原 UGC 网站跳转到伪造的钓鱼页面,用户返回到原窗口时可能会忽视浏览器 URL 已发生了变化,伪造页面即可进一步进行钓鱼或其他恶意行为...

    代码如下:

    <script language="javascript">
    window.opener.location = 'https://example.com'
    </script> 
    

    修复方法:

    为 target="_blank" 加上 rel="noopener noreferrer" 属性。

    预计该“安全缺陷”影响了 99% 的互联网网站和大部分浏览器, Instagram 已修复这个问题,有趣的是谷歌 拒绝接受 这个问题,谷歌认为“这属于浏览器缺陷,不能由单一的网站进行有意义的缓解”。

    34 条回复    2016-09-10 01:30:04 +08:00
    yexm0
        1
    yexm0  
       2016-09-09 15:07:28 +08:00 via Android
    qcloud
        2
    qcloud  
       2016-09-09 15:12:11 +08:00
    shiny
        3
    shiny  
       2016-09-09 15:14:40 +08:00
    几年前有人用这个原理劫持百度,做一个假百度,然后诱导用户设为主页。后来修复了这个问题。
    Google 的搜索页还是常常出现这个问题。
    subpo
        4
    subpo  
       2016-09-09 15:17:33 +08:00
    还近日呢,我上次听说的时候估计还没艳照门呢
    cnxobo
        5
    cnxobo  
    OP
       2016-09-09 15:18:54 +08:00
    @qcloud 老司机, 我搜了下 opener 漏洞,看 V2EX 没讨论过, 就转进来了.
    qcloud
        6
    qcloud  
       2016-09-09 15:19:52 +08:00
    @cnxobo 帖子 21 楼已经解决了这个问题
    qcloud
        7
    qcloud  
       2016-09-09 15:21:11 +08:00
    @shiny 4 个月前百度没有修复这个问题,我刚才看了一下百度修复了,搜狗和 360 搜索仍然还是那样
    morethansean
        8
    morethansean  
       2016-09-09 15:21:34 +08:00
    又来了……谷歌不是一直有这个问题么……
    zi
        9
    zi  
       2016-09-09 16:40:43 +08:00   ❤️ 1
    chimingphang
        10
    chimingphang  
       2016-09-09 16:41:44 +08:00
    6666
    FrankFang128
        11
    FrankFang128  
       2016-09-09 16:50:01 +08:00
    看来有些人不知道「修复」和「避免」的区别
    Lentin
        12
    Lentin  
       2016-09-09 16:52:39 +08:00
    所以谷歌到现在也没给 chrome 打上补丁( x
    tabris17
        13
    tabris17  
       2016-09-09 16:55:59 +08:00   ❤️ 1
    这也能算漏洞???
    ragnaroks
        14
    ragnaroks  
       2016-09-09 16:58:12 +08:00
    百度就有,经常接到报告"百度中毒了,自动跳到博彩"
    est
        15
    est  
       2016-09-09 17:03:48 +08:00
    从来都是 cmd + 点击。从来没中过这招。。。。

    就大陆用户特别喜欢网站自己提供 target="_blank"
    est
        16
    est  
       2016-09-09 17:04:21 +08:00   ❤️ 1
    告诉你们 iframe 也有这个「漏洞」 你们是不是要吓尿了。
    initialdp
        17
    initialdp  
       2016-09-09 17:04:48 +08:00
    我觉得只要网站启动了 HTTPs ,这个所谓漏洞就应该只是浮云吧。
    kera0a
        18
    kera0a  
       2016-09-09 17:14:11 +08:00
    @initialdp 你用 https 打开这个帖子,然后点一下 9 楼的那个连接。
    cai314494687
        19
    cai314494687  
       2016-09-09 17:24:11 +08:00
    我的网站好像没问题 http://www.getyii.com/tweet/default/index
    YvesX
        20
    YvesX  
       2016-09-09 17:53:06 +08:00
    Google 表示锅在浏览器,并且没有给 Chrome 解决这个问题……
    initialdp
        21
    initialdp  
       2016-09-09 17:54:18 +08:00
    @kera0a 我没表达清楚,我的意思是:要利用这个漏洞,黑客要么( 1 )污染或者拦截 HTTP 内容 ( 2 )或者直接黑掉网站来修改内容。

    如果是( 2 )黑掉网站,那这个漏洞其实有没有都已经无所谓了。

    如果是( 1 )污染网页内容,我想 HTTPs 足以防止这种情况。

    对于其他情况,例如在 V2EX 的答复中贴伪造的链接,有没有这个漏洞都应该警惕指向外部的链接。

    所以总体上,我觉得这个漏洞是浮云。
    jasontse
        22
    jasontse  
       2016-09-09 18:00:18 +08:00 via iPad
    讲道理这个问题应该浏览器背,不应该允许跨域操作。
    jasontse
        23
    jasontse  
       2016-09-09 18:04:34 +08:00 via iPad   ❤️ 1
    @initialdp
    不要 123 的,如果 9L 的链接神不知鬼不觉把源页面带到一个非常像 V2EX 的钓鱼网站会怎么样。
    w88975
        24
    w88975  
       2016-09-09 18:04:58 +08:00
    @est cmd+点击也要中招
    anyclue
        25
    anyclue  
       2016-09-09 18:05:32 +08:00
    target="_blank"本来也不符合标准,应该用 rel="external"
    http://www.w3cn.org/article/tips/2005/107.html
    kera0a
        26
    kera0a  
       2016-09-09 18:07:24 +08:00
    @initialdp
    例如发个微博,然后用什么东西诱惑你点击, 点微博 tab 标签 回来后发现微博没登陆(已经跳转到钓鱼网站)
    然后因为是自己输入的微博地址,所以警惕性很低 ,然后就登陆了,然后密码泄露。
    Quaintjade
        27
    Quaintjade  
       2016-09-09 18:26:01 +08:00 via Android
    @initialdp 原文提到了, UGC 网站的用户正常发内容就可以利用这个漏洞,并不需要一般意义上的劫持或黑掉网站。
    harker
        28
    harker  
       2016-09-09 18:43:23 +08:00
    我之前看有人做百度优化的搞这个,覆盖来源的搜索页面,是有点不道德
    mingyun
        29
    mingyun  
       2016-09-09 22:15:19 +08:00
    @kera0a 这也可以
    kn007
        30
    kn007  
       2016-09-09 22:26:41 +08:00
    这应该说是浏览器的问题。话说如果没有_blank 就无事的话,其实很多人都无事。
    qgy18
        31
    qgy18  
       2016-09-10 00:46:12 +08:00 via iPhone
    ranran
        32
    ranran  
       2016-09-10 00:53:56 +08:00
    V2 已经有过油猴脚本解决了。

    《防止垃圾站将父窗口跳转脚本》防止打开网站后,父窗口被跳转到其他页面!
    https://www.v2ex.com/t/278112#reply2
    sudo123
        33
    sudo123  
       2016-09-10 01:17:44 +08:00
    666 ,浏览器禁用 js 就行了
    maskerTUI
        34
    maskerTUI  
       2016-09-10 01:30:04 +08:00
    我也觉得不算是漏洞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1526 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:59 · PVG 07:59 · LAX 15:59 · JFK 18:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.