CSRF跨站点请求伪造

概述

是社工的一种,不大流行,但如果被成功利用,危害很大。

XSS与CSRF区别

XSS通过盗取网站内的已有的用户的身份,然后再执行相关操作
CSRF通过伪装用户身份,通过服务器身份认证后,然后发送恶意请求
虽然两者有一些区别,但是通常结合使用

原理

在浏览器中cookie在一段时间内是不会过期(不关闭或者退出浏览器)
如果在cookie存在期间,通过构造csrf脚本或包含csrf脚本的链接发送给用户
得到信息后,再伪造成用户身份,执行相关操作
攻击者盗用了受害者的身份,以受害者的名义发送恶意请求
对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作

利用方式

比如发消息、盗号、转账等没有没有需要再次验证身份的基本操作
再要验证身份的话,那就再社工搭建一个一模一样的网站

分类

站外攻击:
用户在攻击者构造的网站中触发伪造请求时,强制用户客户端就会发起请求
站内攻击:
如果开发人员滥用 $_REQUEST 类变量,以Post提交的数据表单,也支持Get传参。
攻击者把预测的请求参数上传到站内贴子或留言的图片链接里
当用户浏览了含有请求参数的页面就强制发出这些请求。

危害

  1. 对网站管理员进行攻击
  2. 修改受害网站上的用户账户和数据
  3. 账户劫持
  4. 传播CSRF蠕虫进行大规模攻击
  5. 利用csrf进行拖库
  6. 利用其他漏洞进行组合拳攻击
  7. 针对路由器的csrf攻击

防护

  1. 尽量使用POST,限制GET;
  2. 浏览器Cookie策略(时间生存周期管理和签名校验管理);
  3. 加验证码;
  4. Referer Check;
  5. Anti CSRF Token;

漏洞利用

  1. 更改数据包POST/GET
  2. 修改Referer
  3. 利用XSS漏洞或其他方法将代码注入目标服务器,诱使受害者触发
  4. 使用Burp右键tool里生成一个PoC

好像就这么多,CSRF没啥好讲的了。