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

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

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

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

分享:
  (51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
  10.1.5  检测CSRF漏洞
  检测CSRF攻击主要分为两种:手工检测和半自动检测。这里并不是说没有全自动的CSRF检测工具,只是全自动CSRF工具的误报率较大,故不再介绍全自动检测工具。
  1.手工检测
  在检测CSRF漏洞时,首先需要确定的一点是:CSRF只能通过用户的正规操作进行攻击,实际上就是劫持用户操作。所以,在检测前首先需要确定Web应用程序的所有功能,以及确定哪些操作是敏感的,比如修改密码、转账、发表留言等功能。
  确定了敏感性操作后,使用这项"功能"拦截HTTP请求,比如,删除用户操作URL为:Http://www.xxser.com/delUser.action?id=1,可以猜想,此时的参数项ID应该是用户的唯一标识信息,通过此ID可以删除指定的用户。在确定参数项的意义后,就可以验证该项功能是否存在CSRF漏洞。
  编写CSRP POC为:
<html>
<body>
<form name="myform" action="delUser.action" method="GET"  >
<input type="hidden" name="id" value="5" />
</form>
<script>
var myfrom = document.getElementById("myform");
myfrom.submit();
</script>
</body>
</html>
  打开这个HTML,JavaScript将会自动提交这个form表单,当提交请求后,查看ID为5的用户是否已经被删除,如果被删除,就可以确定存在CSRF漏洞。
  CSR漏洞也可以理解为:服务器到底有没有执行POC的请求,如果已执行,则代表存在CSRF漏洞。
  2.半自动检测
  在检测CSRF漏洞时,不像SQL注射、XSS漏洞那样,有时候必须要完全通过手动测试,而CSRF测试则不需要,CSRF漏洞最常用的是半自动检测。下面介绍常用的CSRF半自动检测工具:CSRFTester。
  CSRFTester的英文全称是Cross Site Request Forgery,是OWASP组织提供的一款半自动CSRF漏洞测试工具,它可以拦截所有的请求,方便渗透测试人员进行分析。
  CSRFTester采用Java编写。所以,想要使用它,必须先确保计算机已经安装好Java,并可以运行Java程序。
  本次测试版本为OWASP-CSRFTester-1.0,读者可以在https://www.owasp.org/index.php/ Category:OWASP_CSRFTester_Project页面下载,将下载好的CSRFTester解压,然后运行run.bat,将启动CSRFTester,如图10-7所示。
  
图10-7  CSRFTester主界面
  CSRFTester启动后,将会在run.bat控制台中看到如下字符:
  2013-6-20 16:15:09 org.owasp.webscarab.plugin.proxy.Listener listen
  信息: Proxy listening on 127.0.0.1:8008
  这表示CSRFTester已经在监听8008端口,如果你想要使用CSRFTester,就必须将浏览器的代理端口设置为8008端口。在"Burp Suite Proxy"一节中,已经详细描述了如何设置代理,这里不再一一阐述。
  登录要检测的网站后,在测试某项功能是否存在CSRF漏洞之前,单击"Start Recording"按钮开启CSRFTester的检测工作。此时再访问网站,所有的请求URL都会被CSRFTester一一记录下来。
本文选自《Web安全深度剖析》第十章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号