CSRF攻击:攻击者构造合法的HTTP请求,随后利用用户的身份操作用户帐户的一种攻击方式。
一、CSRF攻击原理
CSRF的攻击建立在浏览器与Web服务器的会话中;欺骗用户访问URL。
二、CSRF攻击场景(GET)
例:
http://www.example.com是全球最大的微博平台,一次偶然的情况,黑客TOM对微博的收听功能做了抓包
在post.html中构造一个form表单,然后利用JavaScript自动提交表单。
四、CSRF的检测
检测CSRF攻击主要分为两种:手工检测和半自动检测。全自动CSRF工具的误报率较大,不予考虑。
4.1 手工检测
在检测CSRF漏洞时,首先需要确定的一点是:CSRF只能通过用户的正规操作进行攻击,实际上就是劫持用户操作。所以,在检测前首先需要确定Web应用程序的所有功能,以及确定哪些操作是敏感的,比如修改密码、转账、发表留言等功能。
确定了敏感性操作后,使用这项“功能”拦截HTTP请求,比如,删除用户操作URL为:http://www.example.com/delUser.action?id=1
编写CSRF POC为:
<html> <body> <form name="myform" action="delUser.action" method="GET"> <input type="hidden" name="id" value="5"/> </form> <script> var myform = document.getElementById("myform"); myform.submit(); </script> </body> </html>
CSRF漏洞也可以理解为:服务器到底有没有执行POC的请求,如果已执行,则代表存在CSRF漏洞。
4.2 半自动检测
使用工具CSRFTester,能够记录请求的每个URL,并且自动生成 CSRF POC。