当前位置:主页>科 研>学术交流>

科普:流量劫持能有多大危害?

上一篇文章,介绍了常见的流量劫持途径。然而无论用何种方式获得流量,只有加以利用才能发挥作用。

不同的劫持方式,获得的流量也有所差异。DNS 劫持,只能截获通过域名发起的流量,直接使用 IP 地址的通信则不受影响;CDN 入侵,只有浏览网页或下载时才有风险,其他场合则毫无问题;而网关被劫持,用户所有流量都难逃魔掌。

在本文中,我们通过技术原理,讲解如下问题:

- 为什么喜欢劫持网页?- 只浏览不登陆就没事吗?- 自动填写表单有风险吗?- 离开劫持环境还受影响吗?- 使用 HTTPS 能否避免劫持?- 流量劫持能否控制我电脑?

为什么喜欢劫持网页?

理论上说,劫持到用户的流量数据,也就获得相应程序的网络通信。但在现实中,数据并不代表真实内容。一些重要的网络程序,都是私有的二进制协议,以及各种加密方式。想通过流量来还原出用户的聊天信息、支付密码,几乎是不可能的。即使花费各种手段,破解出某个程序的通信协议,然而一旦程序升级改变了协议格式,或许就前功尽弃了。因此,很难找到种一劳永逸的客户端劫持方案。

然而,并非所有程序都是客户端的。一种新兴的应用模式 —— WebApp,发展是如此之快,以至于超越客户端之势。在如今这个讲究跨平台、体验好,并有云端支持的年代,WebApp 越来越火热。各种应用纷纷移植成网页版,一些甚至替代了客户端。同时,也造就了流量劫持前所未有的势头。

WebApp,其本质仍是普通的网页而已。尽管网页技术在近些年里有了很大的发展,各种新功能一再增加,但其底层协议始终没有太大的改进 —— HTTP,一种使用了 20 多年古老协议。

在 HTTP 里,一切都是明文传输的,流量在途中可随心所欲的被控制。传统程序事先已下至本地,运行时只有通信流量;而在线使用的 WebApp,流量里既有通信数据,又有程序的界面和代码,劫持简直轻而易举。

上一篇也提到,如果在户外没有 3G 信号的地方钓鱼,无法将获得的流量转发到外网。然而,使用网页这一切就迎刃而解。我们完全可以在自己的设备上搭建一个站点,留住用户发起离线攻击。对于那些连上 WiFi 能自动弹网页的设备,那就更容易入侵了。

因此,劫持网页流量成了各路黑客们的钟爱,一种可在任意网页发起 XSS 的入侵方式。



 

下面,开始我们的攻防之旅。

只浏览不登陆就没事吗?

每当砖家出来提醒时,总免不了这么一句:公共场合尽量不登录账号。于是,大家就认为只看网页不登陆就平安无事了。

如果是公共的电脑,那也就无所谓;否则,自己的一些账号可能就倒霉了。

在自己的设备上,大家都会记住各种账号的登录状态,反正只有自己用,也没什么大不了的。然而,在被劫持的网络里,一切皆有可能发生。即使浏览再平常不过的网页,或许一个悄无声息的间谍脚本已暗藏其中,正偷偷访问你那登录着的网页,操控起你的账号了。

听起来似乎很玄乎吧,砖家似乎也没说已登录的账号会怎么样。难道随便一个网页,就能让各种账号被控制吗?

大家都知道,HTTP 是无状态的,不像传统协议有个『会话』之类的概念。各种账号的登录状态,只能依靠浏览器的 Cookie 来实现。因此,只要有了的 Cookie 也就获得了用户账号的使用权。

和传统 XSS 攻击不同,流量劫持可以得到任何通信数据,当然也包括那些受 HttpOnly 保护的 Cookie。攻击脚本只需对某个站点发起请求,黑客即可在中途劫持到传输的 Cookie 数据。如果同时发起众多站点,就能覆盖相当一部分目标了。



 

这种请求未必要真正访问一次页面,仅仅将 URL 作为图片加载,将目标站点的 Cookie 送出即可。

黑客得到 Cookie,即可在自己浏览器里还原出登录状态。尽管你确实没有登录操作,但那些已登录的却能出卖你。

防范措施:

访问一些重要的网站,尽量不要记住登录状态,以免 Cookie 被泄露。不过,只要网站绑定了 Cookie 和 IP 段,这招的危害程度就大幅降低了,仅凭 HttpOnly 还是很不靠谱的。

自动填写表单有风险吗?

使用上面的方法获得 Cookie,即使能控制账号,但其密码仍无法得知,随时都有可能失去控制权。

不过,一些用户有让浏览器自动保存密码的习惯。通过这点,我们是否能套出记住的密码来呢?

分析下浏览器是如何自动填写页面表单的。其实很简单,浏览器发现页面 URL 和表单名匹配记录里的,就自动填上了。



 

要是在流量可控的网络里,剥离页面所有内容只剩表单,又会如何?



 

保存着的密码仍能自动填上,并且可被脚本访问到!

如果我们在用户访问的页面里,创建大量的隐藏框架页,即可尝试获取各种网站保存着的账号了。(不过如今 Chrome 框架页已经不会自动填写了。具体实现和浏览器有关)。

不过,即使框架页不自动填写,但主页面总得保留该功能吧。如果发现用户某个打开着的网页很久没有交互了,可悄悄跳转到如上那样的纯表单页,无论能否获取数据,都将继续跳转,一个接一个的尝试。。。直到用户切回窗口,再恢复到原先那个页面。



 

由于泄露的是明文的账号和密码,即使数量不多,也能通过社工获取到用户的更多信息,最终导致更严重的泄露。

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

容器是如何让“一切都是代码”成为现实的

容器是如何让“一切都是代码”成为现实的

现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起以及该运动所产生的各种自动...[详细]

如何快速掌握一门新技术/语言/框架

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能...[详细]

建高效数据中心有径可循

建高效数据中心有径可循

能耗问题一直是各大数据中心的心头之痛。有数据表明,2015年我国数据中心能耗预计将高...[详细]

2015黑帽大会:网络灾难后 重建IT安全

2015黑帽大会:网络灾难后 重建IT安全

在遭遇网络灾难后重建IT安全似乎是不可能完成的任务,但根据安全专家Christina Kubeck...[详细]

面对DNS劫持 企业移动应用该如何防护?

面对DNS劫持 企业移动应用该如何防护?

DNS(Domain Name System)劫持又称域名劫持,是指对正常的域名解析请求加以拦截,转而...[详细]

返回首页 返回顶部