CSRF漏洞
内容
1.CSRF漏洞的概述
2.CSRF漏洞的原理
3.CSRF漏洞的分类与利用
4.CSRF漏洞的挖掘与防御
背景
CSRF(Cross-Site Request Forgery,跨站请求伪造),它是一种常见的Web攻击方式,很多开发者对它很陌生。它在2007年曾被列为互联网20大安全隐患之一。即使是大名鼎鼎的Gmail,在2007年底也存在CSRF漏洞,从而被黑客造成巨大的损失。
什么是CSRF
攻击者盗用了你在某个网站的身份,以你的名义发送恶意请求。跨站请求伪造(英语:Cross-site request forgery),也被称为one-click attack 或者 session riding,通常缩写为 CSRF 或者XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
关键字
如何挟制用户?
如何让用户执行非本意的操作?
CSRF能够做的事情
以你的名义:
- 发邮件
- 发消息
- 财产操作比如转账,或者购买商品
- 修改密码
- 删除文章
…
CSRF漏洞原理
简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
比如修改:只知道请求来自用户的浏览器,但是不知道,发起请求的链接是浏览器的哪个标签发出的。
演示分析
演示分析
演示分析
疑问
zhangsan帐户并没有主动点击转账给zsm帐户
- 为什么zhangsan520帐户的钱少了1000
- 为什么zsm帐户的钱增加了1000
看图看真相
挟持用户
其实我们不能挟持用户,但是我们可以挟持用户的浏览器发送任意的请求。
某些html标签是可以发送HTTP GET类型的请求的。例如img标签
<img src= "http://www.baidu.com" />
浏览器渲染img标签的时候,并不知道img标签中src属性的值,到底是不是一个图片,浏览器做的就是根据src中的链接,发起一个HTTP GET请求,并且携带上当前浏览器在目标网站上的凭证,也就是cookies,获取返回结果以图片的形式渲染
根据这个特性,可以挟持用户的浏览器携带用户凭证发送任意的请求让用户执行非本意的操作其实用户所有进行的操作,比如发送短消息,转账操作,用户操作的只是浏览器,而浏览器通过发送HTTP请求,才是真正的跟Web应用程序交互的操作。
用户浏览器发送出去的HTTP请求代表了用户的操作可以通过burpsuite抓包获取用户操作背后的HTTP请求,修改HTTP请求的相关参数后,挟持受害者发送修改后的HTTP请求受害者在不知情的情况下完成了发送短消息或者转
账等操作
回放攻击流程
CSRF利用前提条件
从图中可以看到,要完成一次CSRF攻击,受害者必须一次完成两个步骤:
- 登录信任网站A,并在本地生成Cookie。
- 在不退出的情况下,访问危险网站B。
如果不满足以上两个条件中的一个,就不会受到CSRF的攻击。
以下情况你不能保证不会发生:
- 你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外站。
- 你不能保证关闭浏览器之后,你的本地Cookie立刻过期,你上次的会话已经结束。
- 图中所谓的攻击网站,很有可能是一个存在其他漏洞的可信任的经常被人访问的网站。
CSRF漏洞的分类
GET CSRF
CSRF最初的一个错误观点,认为CSRF只能有GET请求发起,因此一些开发者认为只要把重要的操作改为只允许POST请求就能防止CSRF
对于很多网站来说,即使是一些重要的操作使用POST来提交请求,但是服务端在接受请求的时候未严格的区分GET和POST。攻击者依然可以用GET来请求表单的提交地址。
比如在PHP中,如果使用的是$_REQUEST,而$_REQUEST既可以接受GET请求也可以接受POST请求。
POST CSRF
如果服务端已经区分了GET和POST,只用$_POST来接收请求数据。最简单的方法就是在攻击页面构造好一个form表单,然后用javascript自动提交这个表单。
CSRF漏洞的防御
从漏洞原理来看
- 关键操作增加验证码(比如说支付密码)
- 验证referer
- 使用Token
从漏洞利用前提条件来看
- 用户需要养成访问完一个网站之后,点击退出帐户的好习惯
- 如何挖掘CSRF漏洞、CSRF漏洞修补建议
- CSRF漏洞
- 一个csrf实例漏洞挖掘带你了解什么是csrf
- web安全、XSS、CSRF、注入攻击、文件上传漏洞
- Web安全 -- CSRF漏洞
- [漏洞分析] BEdita CMS 3.5.0中存储型XSS与CSRF漏洞分析
- [谷歌旗下Blogger CSRF漏洞 全文]
- 用代码来细说Csrf漏洞危害以及防御
- CSRF漏洞之验证referer
- Web 应用程序常见漏洞 CSRF 的入侵检测与防范
- JSONP存在的JSON Hijacking漏洞以及与csrf/xss漏洞的关系
- web安全——CSRF漏洞原理和解决方案
- Web 漏洞分析与防御之 CSRF(二)
- CSRF漏洞详细说明
- 安全测试4_客户端的安全漏洞(XSS、CSRF、点击劫持、URL跳转)
- 通过DVWA学习CSRF漏洞
- 【图解漏洞】图解跨站请求伪造(CSRF)原理(之二)
- 腾讯大牛教你web前后端漏洞分析与防御-CSRF
- 漏洞CSRF修改个人资料和编辑器存储型xss漏洞
- 避免CSRF漏洞