什么是CSRF?
CSRF(英语:Cross-site request forgery)跨站请求伪造,也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
最大的区别就是CSRF没有盗取用户的cookie,而是直接的利用了浏览器存储的cookie让用户去执行某个动作。
有什么危害?
简单总结 CSRF 漏洞就是利用网站权限校验方面的漏洞在用户不知觉的情况下发送请求,达到“伪装”用户的目的。攻击者利用 CSRF 实现的攻击主要有以下几种:
攻击者能够欺骗受害用户完成该受害者所允许的任一状态改变的操作,比如:更新账号细节,完成购物,注销甚至登录等操作。
获取用户的隐私数据
配合其他漏洞攻击
CSRF 蠕虫
分类:GET型(手动型、自动型)、POST型
前提条件:用户必须是登录状态
原理:
1.用户浏览并登录信任网站A
2.网站验证通过,在用户处产生A的cookie
3.用户在没有登出的情况下访问攻击网站B
4.B要求访问第三站点A,发送恶意的请求
5.根据B在4的请求,浏览器带着2产生的cookie访问A,并执行B的恶意代码
CSRF漏洞利用条件:
漏洞条件
1、被害用户已经完成身份认证
2、新请求的提交不需要重新身份认证或确认机制
3、攻击者必须了解Web APP请求的参数构造
4、诱使用户触发攻击的指令(社工)
CSRF漏洞挖掘方法:
1.密码修改处
2.点赞
3.转账
4.注销
5.删除
6.修改个人信息
CSRF漏洞修复方法:
1、校验referer来源
2、添加随机token
3、身份确认机制