精英盒子 -> 程序设计 -> 灰常冷门的跨端口窃取Cookie [打印本页]

jybox 2012-09-06 21:05

灰常冷门的跨端口窃取Cookie

大多数网站,在登陆后会通过Cookie来保存登陆状态如果你能够得到其他人的Cookie,你就可以以他的身份来访问网站
如果你得到了管理员的Cookie,那么你就可以以管理员的身份来进入后台

访问一个网站时,当一条Cookie满足下面三个规则的时候,这个Cookie就会被发送

* 该网站的域名与Cookie要求的域名相同
* 该网页的路径与Cookie要求的路径相同
* 该网页的连接方式(HTTP/HTTPS)与Cookie的要求相同

注意!这其中没有与端口有关的要求!

也就是说,浏览器认为 http://xxoo.xo/http://xxoo.xo:1234/ 是同一个网站
http://xxoo.xo/ 设置的Cookie,在访问 http://xxoo.xo:1234/ 时也会被发送


这意味着,如果你能够在xxoo.xo对应的ip上的其他端口建立Web服务器,并欺骗xxoo.xo的管理员访问你的Web服务器,那么你就可以窃取到管理员的Cookie,进而以管理员的身份来访问网站,进入后台

如果xxoo.xo被托管在一个公用的虚拟主机服务器上,这会非常简单,你可以在相同的服务器上购买一份虚拟主机,甚至试用。然后在其他端口建立一个Web服务器。当然,国内的大多低端主机商恐怕不会提供这个功能。

所以我要给我的神马终端(http://what.jybox.net)打个广告,这是一个权限非常灵活,而价格又非常低的虚拟主机

很好,现在你在 xxoo.xo 所在的服务器上的 1234 端口建立了一个Web服务器,并写了一个记录Cookie的脚本
下面你只需要欺骗 xxoo.xo 的管理员访问 http://xxoo.xo:1234/ 即可

他会随便访问别人发来,而且看起来很奇怪的地址么?
其实你可以做得很隐蔽,你可以去他的网站,发表一个帖子(如果是论坛)或评论(如果是博客),发一个地址为http://xxoo.xo:1234/xxoo.png 的图片,图片是会在网页打开的时候自动加载的,而xxoo.png是你写的记录Cookie的脚本

如此一来,竟做得神不知鬼不觉,没几个人会检查网页上每个图片的地址的...

-------------

我想我有必要再给xxoo.xo的管理员一点忠告,想避免这种攻击也并不是很困难

方案1.不要和别人共用服务器,自己购买独立的服务器,独立的IP
这一条是最简单的解决方案,只要你有钱

方案2. 整个网站都使用HTTPS协议,并设置Cookie仅通过HTTPS发送,不得不说,HTTPS是非常有效的,避免信息泄露的技术。不过SSL证书是非常贵的....

所以,我有必要在这里给JySSL(https://github.com/jybox/JySSL)打一个广告,这是我创立的,(目前)免费的SSL证书颁发机构

方案3. 使用CDN,CDN相当于一个代理,你需要将你的域名指向CDN,而CDN一般只开放80端口,其他端口的通讯都会被丢弃.

jybox 2012-09-06 21:07
今天我在jybox.net发现了这个漏洞,于是写了这篇文章

在神马终端上的其他站点可能也受这个漏洞影响,但目前来讲,还没什么太好的解决方案,只能希望站长能够注意我后面提出的三条解决方案了

我想,在神马终端,真正有效的方案,可能需要建立一个域名验证的系统,然后在内核级过滤不合法的数据包...

1022 2012-09-06 21:46
      你平时干什么呀       厉害

scxy 2012-09-07 13:02
高级ad= =

pdl 2012-09-08 10:48
cookie也可以跨端口??

内容来自[手机版]

jybox 2012-09-08 22:42
pdl:cookie也可以跨端口??
内容来自[手机版]  (2012-09-08 10:48) 

当然,cookie只区分域名、路径、http/https,不区分端口...




Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.043359 second(s),query:5 Gzip enabled