博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端黑魔法之远程控制地址栏
阅读量:3728 次
发布时间:2019-05-22

本文共 1985 字,大约阅读时间需要 6 分钟。

*本文原创作者:phithon,本文属FreeBuf原创奖励计划,未经许可禁止转载

由于今天看到一篇文章《》,里面提到了一个老知识点,就是target=”_blank”的时候,新打开的页面可以通过window.opener来控制源页面的URL,进行钓鱼攻击。这个攻击手法我在博客《》中也说过,这里就不再赘述了。这篇文章抛出另一种与target有关的钓鱼攻击。

0×01 效果演示

首先可以看一个小例子:

(点击查看大图)

见上图,打开上述链接,然后点击“click me”,打开了百度。这时查看地址栏,的的确确是百度,然后我们等待10秒,再次查看地址栏,这个时候已经变成攻击者的网址了;即使此时我们再访问淘宝等页面,只要仍然在这个标签页下,地址栏就仍然会被控制。

0×02 原理说明

上述页面的代码也很简单:

click me

如果用户点击了超链接“click me”,这里会启动一个循环定时器,每过10秒钟,将会将超链接的地址更换成一个仿百度的钓鱼网站,并再次点击。(当然,如果是真实攻击的话,最好是做一个真实目标的反代服务器,这个在我另一篇文章《》中也有详细的介绍)

这里,超链接的target属性指定目标URL在哪个页面下打开,就是目标页面的window.name。如果这个a标签的href发生了变化,再次点击链接,页面仍然会在相同的标签页下打开,所以就覆盖了上一次打开的页面。

比如,我们是一个“网址导航”类型的恶意网站,用户在我们网站上打开了百度、淘宝等标签页面,我们将可以根据用户打开的超链接来生成钓鱼页面,伪造这些网站的登录页面,精准地进行钓鱼。我这里就不进行演示了。

0×03 扩展尝试

除了超链接以外,用window.open也可以达到一样的效果:

click me

不过,window.open经常会被广告拦截相关的功能给阻止掉,所以可能效果不如直接用超链接。

那么,继续深入研究。这个现象究竟是否和window.name有关呢?那么是不是我们知道了某个页面的name,即可对其页面的URL进行控制?

我们可以做一个实验。

编写A页面(  ):

Hello world.

编写B页面(  ):

click me

A页面是目标网站,其中设置自己的name是baidu;B是攻击者的页面,其中设置target="baidu"

显然,我们在B中点击“click me”以后,会打开一个新的页面,而不是修改A页面的URL。这个实验说明,URL的远程控制和window.name没有直接关系,而是和页面的父子关系有关。

0×04 总结

本文所描述的攻击方式和opener的攻击方式比较相似,都是在不能跨域的情况下,控制目标标签页的URL,进而进行钓鱼攻击。

但我觉得这个攻击持久型更佳,因为即使用户在新标签中输入自己的域名,或者又通过超链接点击到其他网站里,这个页面的地址栏永远是受到源页面的控制的。理论上在源页面不关闭的情况下,可以永久控制新页面的地址栏。

*本文原创作者:phithon,本文属FreeBuf原创奖励计划,未经许可禁止转载

这些评论亮了

  • xsseng
    手机浏览器效果更加
    )
    12
    (

已有 14 条评论

  • (3级)
    其实我叫fifysky
     2018-03-12
    1楼

    多谢分享,固定标签栏的话。。

    ( 1)
  • xsseng
     2018-03-12
    2楼

    手机浏览器效果更加

    ( 12)
    • JmNkS
       2018-03-14

      @ xsseng 我的手机浏览器不起作用

      ( 1)
  • (4级)
    我思故我在……
     2018-03-12
    3楼

    https://xianzhi.aliyun.com/forum/topic/2123

    原作者,[/赞]

    ( 1)
    • (7级)
       2018-03-12

      @ 冰海  这个就是原作者啊,而且比先知那篇详细,有什么问题?

      ( 2)
      • (4级)
        我思故我在……
         2018-03-12

        @ Akane  嗯,没问题,我先看到的是那篇文章,这篇更详细一点,是同一作者,没问题哈

        ( 1)
  • 地方税务局
     2018-03-12
    4楼

    有意思

    ( 0)
  • 市委达康书记
     2018-03-12
    5楼

    写的很好

    ( 0)
  • (7级)
    曾梦想仗剑走天涯,看一看世界的繁华。
     2018-03-12
    6楼

    防不胜防 :???:

    ( 1)
  • dianhee
     2018-03-12
    7楼

    我等了一个小时也没有变成攻击者的网站啊

    ( 0)
  • (3级)
     2018-03-12
    8楼

    惊现P神

    ( 0)
  • (4级)
     2018-03-12
    9楼

    p神好厉害

    ( 0)
  • (1级)
     2018-03-12
    10楼

    那么有办法去防御么?请教下各位。

    ( 0)
  • 李白
     2018-03-12
    11楼

    感觉不怎么实用。。。

你可能感兴趣的文章
Python之正则表达式相关知识介绍
查看>>
设计模式学习笔记
查看>>
学习笔记~1.2 CSS浮动布局&盒模型
查看>>
学习笔记~1.3 CSS 定位布局
查看>>
学习笔记~1.5 CSS3新特性
查看>>
js实现输入框的验证
查看>>
jQuery案例-网页播放器02布局
查看>>
js语法注意点
查看>>
字面量创建对象
查看>>
parseInt方法
查看>>
js数组方法
查看>>
js创建模式
查看>>
回调地狱和Promise
查看>>
箭头函数
查看>>
let关键字
查看>>
原生js实现本地图片预览
查看>>
一个简单的网站(适合课设)
查看>>
springboot+thymeleaf 东软医疗项目 开发错误记录
查看>>
跨域问题
查看>>
在Vue cli3 中使用Element-UI
查看>>