常见web安全漏洞详解(四):MITM

383 阅读3分钟

这是我参与8月更文挑战的第30天,活动详情查看:8月更文挑战

原理

MITMman-in-the-middle的简称,译为中间人,利用它发起的攻击叫中间人攻击,顾名思义,攻击者处于通信双方的中间,分别与双方建立独立的连接,但是通信双方都没有意识到中间人的存在,攻击者从而对双方的通信消息进行窃听,篡改等。

image.png

从上图看到,原本对话只发生在签某、都某之间,但是中间杀出了个刘某,不仅窃听了对话信息,还篡改了消息内容,一人分饰两角。

攻击类型

中间人攻击的类型很多样,但是归根结底,通常都是利用传输协议以及程序漏洞来发动攻击,例如攻击者常考虑的方式有DNS劫持和ARP欺骗等,将通信双方的信息流动方向由直传变成由中间人中转,而中转对于通信双方来说是完全不可知的。

DNS劫持

DNS劫持又叫DNS欺骗,攻击者通过冒充DNS服务器来把用户查询的IP地址设置为攻击者指定的IP,这样,用户原本应该访问正常的网页,但是由于DNS->IP映射已经被攻击者修改,因此用户就掉入了攻击者布置的陷阱中,这便是DNS劫持的基本原理。

DNS劫持没有直接破坏对方的网站,而是通过冒充来转移对方网站的流量。

ARP劫持

ARP又叫地址解析协议,是一种根据IP地址来获取mac地址的网络层协议,IP包的寻址需要依靠路由表,但是,当IP包到达某个局域网后,决定哪台机器响应这个数据包是靠包中的mac地址标识来识别。

ARP地址解析协议是建立在网络中各个主机相互信任的基础上的,局域网络内的主机可以自由发送ARP应答报文,其他主机收到应答报文时不会检测该报文的真实性就会将它加入ARP映射缓存表中,利用这个特性,攻击者就可以向要攻击的主机发送伪造的ARP应答报文,使得其ARP缓存表中存储错误的IP->mac映射关系,使得使其发送的信息无法到达预期的主机或到达攻击者指定的主机上,这就是ARP劫持的基本原理。

防御

  • 数据加密后再传输,例如网站协议升级为HTTPS,浏览网站时尽可能只访问那些使用HTTPS的网站。
  • 谨慎使用公共WiFi:使用公共WIFI前,应该下载安全防护软件,并且注意浏览器的警告,如果浏览器警告过于频繁,那大概率受到了中间人攻击。
  • 不安装来路不明的软件,这些软件可能带有中间人模块。
  • 设备安装安全防护软件,定期消杀。

HTTPS一定安全吗?

HTTPS也是不一定安全的,因为HTTS所依赖的证书,密钥都有可能遭到中间人劫持和调包。

无标题-2021-08-31-0938.png

因此,对于一些重要的场景,可以通过预埋证书、证书校验、域名检测来提高HTTPS防劫持能力。

HTTPS劫持的最直接使用就是HTTPS抓包,想要抓取HTTPS数据包,首先需要给抓包软件安装相关的证书,这样抓包软件才能解析用户发送的数据以及服务器返回的数据,并呈现出来。