我经常给客户讲,单点登录SSO中,强烈不建议部署HTTP的SSO服务站点。
在此写个基于网络包嗅探的HTTP会话劫持程序,给大家一个直观的危害性展示。
假如我在一台Mac上登录58同城,被另一台Windows上的程序劫持。“黑客”查看我的信息畅行无阻,还顺手改了我的头像。
58同城的用户登录是采用了HTTPS的,仍然逃不过会话劫持。大部分较规范的网站,都是类似模式:登录采用HTTPS,主要流量走HTTP。
随手测试发现,使用该模式的站点,包括csdn、qq邮箱(是的它竟然还有http版的)等等,很多都未做到会话劫持免疫。博客园其实也中招了,但它把敏感操作都放到了HTTPS,所以没太多影响。
其实,对于用HTTP走流量、HTTPS走认证的站点,略施改造,是可以对会话劫持免疫的。各大网站可以自行下载我的程序自查是否存在缺陷,我可以提供针对性免疫补丁支持。
以下是该示例的主要代码,蛮简单,引用了Pcap.NET组件,需要对应安装WinPcap。基于该组件的网络数据包嗅探,只是做会话劫持的一种途径,而且有应用局限性,所以示例代码更多是一个演示程序而非黑客工具。
会话劫持可以在发生在不少地方/途径:
1、通过专门设置的路由器/交换机;所有Hub;同一台物理机上的虚拟机
2、所有上网代理
3、可被ARP攻击的局域网络
4、不安全的无线网络
5、网络运营商具备劫持能力。以前访问http网站,常常能看到网络运营商注入的广告,这说明它是在解析HTTP数据的。
用廉价的Hub,大部分是通过路由器、交换机接入网络的。对此只有在支持的设备上特别配置并指定的机器,才能嗅探到其它机器的数据包。
对于同一台物理机上的虚拟机,因为它们对应一块物理网卡,所以无需交换机、路由器上做设置,就能嗅探到彼此数据。使用虚拟机环境是一个运行本示例的快捷途径。
可见能够发生会话劫持的场景比较广。因此,情感曾经的你经常提醒客户,做好安全验证是站点运营最起码的条件。情感曾经的你在此提醒各位企业,或者各位缺乏安全意识的朋友:站点上线务必保证已经通过SSL验证。
领取专属 10元无门槛券
私享最新 技术干货