我的回答是,有,不仅有意义,而且意义重大。

    有些人可能不知道一种攻击方式叫做“中间人(Man In The Middle)攻击”。

    我这里简单介绍一下中间人攻击的一种,局域网内的ARP欺骗。

    什么是ARP?ARP是地址转换协议的英文缩写,是用来把IP地址转换为MAC地址的。
    假设A(192.168.1.105)和B(192.168.1.100)在同一局域网内部,A想和B通信,那么A首先会发一个数据包到广播地址(192.168.1.255),该数据包内包含A的IP,A的MAC地址,目的(B)的IP,目的(B)的MAC地址,这个数据包会被发放给局域网内的所有主机,此时B收到包之后会进行返回,返回包的内容大致有B的IP,B的MAC地址,目的(A)的IP,目的(A)的MAC地址。A收到B的返回包之后,会将B的IP和MAC地址保存在ARP缓存表中。

    因为A在保存B的地址的时候没有经过验证,所以就有了欺骗的可能。

    这里还要引入一个概念,叫网关,可以简单的理解成,通往别的网络的大门。局域网内主机如果想访问互联网上的信息,必须通过网关。
    假设A主机(192.168.1.105)和B(192.168.1.100)主机在同一个局域网内,A想要和外界通信,就必须通过网关(192.168.1.1)来进行,网关会接收到A主机的所有请求。
    这时候,如果B主机将自己假扮成网关,就可以窃取到A主机的所有网络请求。

    B主机如何假扮自己呢?就是通过ARP欺骗达成的。
    B向A发送一个返回包,告诉A,192.168.1.1的MAC地址是xxxxxx(B的MAC地址),A就把这个信息记录在了缓存表中,而B的缓存表不变。然后B再向网关192.168.1.1发包,告诉网关,我的MAC地址是xxxxxx(A的MAC地址),这样,A在访问互联网的时候,就先把数据包发给B,B再发给网关,而外界返回的包也是先由网关发送给B,B再转发给A。

    以上好像介绍的有点乱,因为表述原因有些概念可能是我表达能力有限不能很好的解答,我们来点干货,看实战。

    我现在有两台主机
    主机A:攻击机器,ip地址为192.168.1.105
    demo

    主机B:目标机器,ip地址为192.168.1.110
    demo2

    我们先来看目标机器的ARP表
    demo3

    现在我们使用攻击机器进行ARP欺骗,这里使用中间人测试框架MITMf进行。
    demo4

    此时,我们再看目标机器的ARP表
    demo5

    ARP表已被修改,攻击成功。

    那么这样简单的攻击,有什么效果呢?最直接的效果就是,能截取到目标机和非https网站之间的数据包。打个比方,我的目标机器访问一下新郎微博,在攻击机器上可以看见这些请求。
    demo6

    而如果登陆新浪微博,那…
    demo7

    请求的包都被我截取到了!还好新浪做了一点点加密。

    那如果是个安全意识更薄弱的网站呢?账号密码岂不是明文截取?

    而且,也可以直接使用它截取Cookie,拿到Cookie,就算不知道账号密码又何妨?
    demo8

    有人说如果是一些不重要,没有敏感数据交互的网站可以不用https,真的是这样吗?

    如果我说,可以定时截取被攻击者的屏幕,让被攻击者的所有访问隐私都暴露出来呢?
    demo8
    而这只要在攻击框架的命令行里多敲两个单词的代码而已。

    而远程让你加载一个js,给你弹窗钓鱼,或者给你在某游戏的官方网站上下载下来的安装包上捆绑一个后门,或者让你在后台偷偷下载一些数据,偷偷访问一些网站,这些都可以很轻松的做到。

    如果配合上一些XSS攻击框架,甚至可以直接控制你的浏览器,如果你的机器上有漏洞,还可以直接控制你的机器!

    而https的网站则不行,因为https是密文传输,所以攻击者无法进行攻击,哪怕使用针对hsts的攻击方式,被攻击者一般也可以立即发现。

    所以,有些人还会认为,全民普及https没有意义吗?

    ****

    Thanks for Reading

    Jiahao.Zhang
    NetEase Inc. Hangzhou 
            Front-End Developer