CSRF 001——CSRF是什么
提示:我的碎碎念,如果有错误的地方,望指正,栓Q
一、CSRF的简介
CSRF(Cross-site request forgery)跨站请求伪造:攻击者在用户已登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户的身份在攻击页面对目标网站发起伪造用户操作的请求达到攻击目标。
二、CSRF与XSS的区别
1、XSS
通过盗取网站内的已有用户的身份,然后再执行相关操作
2、CSRF
通过伪装(伪造、更改状态的请求)用户(即盗用身份),通过服务器身份认证后,发送恶意请求(服务器会认为请求是合法的),但服务器给出响应肯定是真实的能够用户。
3、区别
CSRF是借用用户的权限完成攻击,攻击者没有拿到用户权限,xss则是盗取cookie
三、流程
1、构造页面
事先在公网上传一个攻击页面,诱骗受害者去访问,真正能够在受害者不知情的情况下完成CSRF攻击。
2、小情景
- 用户C打开浏览器访问受信任的网站A,输入用户名和密码请求登录A,经验证后登陆成功
- A产生一个cookie信息并返回浏览器
- 用户C在未退出A的情况下在同一个浏览器里打开一个tab页访问的网站B
- B接到请求后返回一些攻击性代码并发出一个请求请求,呀求访问第三方网站A
- 浏览器在接收到这些攻击代码后,根据网站B的请求在用户不知道的情况下携带cookie信息向网站A发出请求
- A不知道这个请求是B发起的,所以会根据用户C的cookie信任权限处理这个请求,导致B的恶意代码被执行
3、基本流程
- 用户在某网站A进行登录
- 身份验证成功,返回cookie给用户
- 攻击者构建网站F,诱使用户使用同一浏览器进入(敲黑板、划重点!!!未推出网站A,一般都会有默认浏览器)
- 网站F收到用户请求后,返回恶意代码给用户,强制它访问网站A
- 用户浏览器在网站A上执行相关操作(用已经持有的cookie)