浏览器Cookie机制—Web安全深度剖析(2)

发表于:2015-5-08 10:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:张炳帅    来源:51Testing软件测试网原创

  10.1.4  浏览器Cookie机制
  从前面的内容我们可以得知,攻击者想要成功进行CSRF攻击,前提必须是用户处于登录状态。
  读者可能会注意到一个情况,有些网站提供了"记住我"或者是"1个月之内免登录"的功能,毫无疑问,这使用户方便了许多,在登录网站时无须再次输入密码,但当攻击者进行CSRF攻击时,用户也更容易中招。
  接下来将详细介绍浏览器的Cookie策略。
  前面详细介绍了Cookie的两种表现形式:一种是本地Cookie,又称为持久型Cookie;另一种则是临时Cookie,又称为Session Cookie。两者的区别在于持久型Cookie是服务器端脚本语言向客户端发送Cookie时制定了时效,也就是Expire字段,而且会存储于本地,当Expire所制定的时效过期后,Cookie将失效。而Session Cookie则没有制定Expire时效,是存储在浏览器内存中的,当浏览器关闭后,Session Cookie也随之消失。
  例如,CookieTest.php源码如下:
  <?php
  setcookie("a", "admin");
  setcookie("b", "bdmin", time()+3600);
  ?>
  访问URL:http://www.xxser.com/cmd/CookieTest.php,服务器端将会向客户端返回两个Cookie,一个是Session Cookie,另一个则是本地Cookie,具有一小时时效,如图10-3所示。
  
图10-3  返回Cookie结果
  访问同域下的页面时,无论是Session Cookie还是本地Cookie,Cookie将会一起被发送,如图10-4所示。
  
图10-4  同一域下Cookie被发送
  下面说到了重点,http://www.shuijiao8.com:9527/Jsp/Index.html的源码如下:
<html>
<body>
<head>
<title>
Cookie Test
</title>
</head>
<iframe src="http://www.xxser.com/" name="myiframe"></iframe>
</body>
</html>
  在这个Index.html中访问http://www.xxser.com会不会发送其Cookie呢?访问结果如图10-5所示。
  
图10-5  Chrome下发送Cookie
  可以看到,在Chrome下会发送Cookie。但不同浏览器的Cookie机制是不一样的,比如IE就不会发送Cookie,如图10-6所示。
  
图10-6  IE下发送Cookie
  所以,安全研究人员在测试CSRF时,一定要考虑浏览器问题,每个浏览器的Cookie机制都不完全相同,像FireFox也可以发送Cookie。
  假设Http://www.xxser.com/存在CSRF漏洞,用户登录后,Cookie存储在本地,当用户使用Chrome访问Http://www.shuijiao8.com(带有xxser.com的CSRF POC)后,攻击将会成功,但如果使用IE,则可能会失败,这样就可以看出浏览器Cookie机制的重要性。
本文选自《Web安全深度剖析》第十章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号