【转载】在学习Cookie前,先了解一段互联网的历史,Cookie的由来:
1994年,获得计算机学士学位的马克·安德里森还在给美国的国家超级电脑应用中心工作。当时,刚刚熟悉了万维网开放标准的安德森,认为人类应该自由地获取互联网的信息。所以,他当时提议和同事一起做一个图形化的浏览器,必须要兼容Windows和Unix系统,让大部分的电脑都能够安装。
马克·安德森把这个浏览器命名为Mosiac,后来改名为网景(Netscape),还专门成了一个公司。结果这个公司成立一年就挂牌上市了,年轻的马克·安德森也一夜之间成为了亿万富翁。
尽管互联网已经存在了一段很长的时间,在网景浏览器刚推出之前,浏览互联网内容是一件很专业的事情。尽管互联网上内容也很多,但它们就像杂乱无章的信息群,需要找到所需的信息,你需要一定的计算机技术。而现在好了,无论你懂不懂技术,只要有一台可以联网的电脑,一个可以打字的键盘,购买一套网景浏览器的软件,你就可以像专业人士一样浏览网页。
因为马克·安德里森的网景公司,真正意义上的“网上冲浪”热潮才开始兴起。也因为网景浏览器兴起,Windows操作系统本身变得十分乏味和落后——它只是一个个人电脑的操作系统而已,但网景拥有的,是当时38万个不同网站的巨大互联网世界。
1995年,比尔·盖茨宣布向互联网进军。当时,马克·安德里森还很镇定,觉得微软的浏览器IE功能和网景比起来就像是实习生的编程习作,很多漏洞而且很不稳定,还经常导致电脑死机,用户显然会继续选择质量更好的网景浏览器。
尽管IE发展到第四个版本,技术上和功能上都不能和网景相比,但比尔·盖茨祭出了他的杀手锏,把浏览器IE作为Windows 95里面的一个新功能——购买Windows系统就免费赠送。
马克·安德里森急了。他粗暴的管理方式和糟糕的脾气开始显现,当他的下属们感到不知所措时,马克·安德里森并没有去帮忙解决问题,而是经常说“没有愚蠢的问题,只有愚蠢的人。”
“我要让网景成功,必须成功,没有退路。所以我决不容忍任何事情阻挡我。”安德里森自己也承认,这是因为他是一个偏执狂。
在1996年,本来网景浏览器的市场份额还是IE的四倍,但在微软的捆绑销售仅仅在一年半之后,IE市场份额就超过了网景。
仅仅4年时间,网景就从一个盖过微软风头的初创公司变回一个普通的企业,未能挽回败局的马克·安德里森最终只能在1999年将公司卖给美国在线(AOL)公司。但尽管这个公司才辉煌了3年时间,网景当时发明的互联网相关协议,如加密协议SSL、编程语言javascript,追踪互联网浏览历史的cookie还被沿用至今。
美国在线的CFO彼得·库里(Peter Currie)说:“我们影响巨大,我们发明了cookie,还开拓了软件下载业务。但网景只是商业史上的一个注脚。或许它最好的角色就是成为一个经典的科技故事:成立、进取、成功——最终被超越。”
-------------------------------进入主题-------------------
一、如何用fiddler查看cookie?
1)用浏览器打开百度主页,用fiddler抓包查看如下,
2)右边红色框区域显示cookie信息
3)上面红色框显示request cookie
4 )下面红色框显示response cookie
5)也可以自己点开fiddler上cookie区域
二、Cookies到底是什么鬼?
简单来说,Cookies就是服务器暂时存放在客户端(你的电脑里)的资料(.txt格式的文本文件),好让服务器用来辨认 你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookies 会把你在网站上所打的文字或是一些选择都记录下来。当下次你再访问同一个网站,Web服务器会先看看有没有它上次留下的Cookies资料,有的话,就会 依据Cookie里的内容来判断使用者,送出特定的网页内容给你。
三、Cookie放在哪在?
打开IE,在工具栏点工具→Internet选项→常规→(Internet临时文件)设置
这样可以查看到Cookies所存位置,还可以对其进行设置
打开文件,找到百度的cookie
直接用文本打开,如下
打开后,与fiddler抓到的cookie数据对比,发现是一样的
四、设置Cookie安全级别
五、Cookie有哪些用途?
1、自动登录,登陆时,选择记住用户名,下次登陆会自动带出用户名来
2.广告精准投放
当我们用浏览器搜索过一些关键字,如:web测试书,某手机,打开浏览器时,会推送相关浏览过的商品
六、关于cookie安全性
下面这段采摘某安全网址,关于支付宝cookie漏洞的一个案例:
背景:当时我在做公司的网站支付接入,在调试支付宝WAP支付时,发现一些匪夷所思的事情:
1、我想要切换账号时退到需要输入登录信息时,原账号并没有退出,我按一下后退键又回来了;
2、我关闭浏览器也没有退出账号,整个调试过程有差不多一个星期只登录过一次,可以认为登录的账号是无法退出的,除非成功另外一个账号;
由此,我开始怀疑,支付宝WAP支付接口的Cookie有问题,应该是为了方便性设定存了很久时间。
于是我打开用Firebug的Cookie页面一探究竟,我对其中一条名为 ALIPAY_WAP_CASHIER_COOKIE 的Cookie产生的兴趣,就是下图红色箭头所指的那一条,这是一条64个只含大写字母和数字的字符串,有经验的人都会知道,这一般就是哈希算法产生的密文(可能是MD5、SHA等的组合吧);
我抱着试一试的心态,我在隔壁同事的电脑打开了支付宝的WAP支付页,然后把这条Cookie复制到了过去,奇迹果然产生了,我的账号直接在他那里登录成功了,不用输登录密码也不需要手机号码短信认证。就是下图这个样子。
到这里,能看到的隐患就是黑客通过把木马安装在店家的WIFI,用来窃取Cookie信息,把上述这个Cookie拿走,然后慢慢试错,直到把6位密码破解出来(6位密码可以算是弱口令了),如果采集的Cookie比较多,能暴力破解成功还是可以考虑的。
然而还有一种更恐怖的攻击方法,注意到这条Cookie是 64个只含大写字母和数字的字符串,也就基本可以断定这个是哈希算法加密的,而对于那些有丰富经验的黑客来说,简单哈希加密的密文跟明文没有太大区别,不信你可以看看 这个网站,两到三级的哈希加密基本都能被查出来,而这已经是公开的技术了,私密的民间高手技术有多高可以想象了吧。他们只需要用几个账号在支付宝网站生成几个这种Cookie,然后还原出加密方法。他们能做的有两件事:
1、使用大批量账号,可能达到数百万级别,自动生成Cookie然后伪造登录,暴力破解密码。虽然每个账号在三次试错机会中能撞对的概论很小很小,但他们可以延长试错时间,而且基数这么大,成功的机会还是很多的。
2、第二个利用方法虽然没有直接经济效益,但却可以让整个支付宝系统陷入瘫痪。因为支付宝密码输入错误超过3次就会账号被冻结,可以想象数千万甚至上亿的支付宝账号被冻结能给阿里带来多大的冲击吗?这种攻击最受益的应该是阿里的竞争对手们吧。
因为此危害十分大,因此我通过乌云报告给阿里巴巴,然而在经过了一个星期的漫长审核后,它给了这样一个答复
呵呵。。。
然而当我放完国庆长假回来,再次打开支付宝的WAP页,却发现这个Cookie漏洞被修复了,已经没有了几条可能有问题的Cookie!!!