CSRF

1 简介

CSRF其实是一种业务逻辑漏洞,对关键的操作确实确认机制。
全称: Cross-site request forgery
与XSS区别

  • 从信任的角度:

XSS: 利用客户端对站点的信任(从服务端下发下来了的所有脚本对客户端来说都是可信的,当服务端存在跨站脚本漏洞的时候,无论是利用反射型还是持久型,就可以利用服务端向客户端注入恶意的脚本内容)
CSRF: 利用站点对客户端的信任(默认情况下站点是不信任客户端的,客户端可能来自互联网上任何人的访问。当已经进行了身份认证的客户端,站点会给予一定程度的信任。csrf的本质就是利用站点对已经进行了身份认证的客户端的信任)

2 危害

结合社工在身份认证会话过程中实现攻击

  • 修改账号密码、个人信息(email,收获地址)
  • 发送伪造的业务请求(网银、购物、投票)
  • 关注他人社交账号、推送博文

在用户非自愿,不知情的情况下提交请求

3 漏洞利用条件

  • 被害用户已经完成身份认证
  • 新请求的提交不需要重新身份认证或确认机制
  • 攻击者必须了解Web APP请求的参数构造
  • 诱使用户触发攻击的指令(社工)

4 自动扫描程序的检测方法

  • 在请求和响应过程中检查是否存在anti-CSRF token名
  • 检测服务器是否anti-CSRF token的名值
  • 检测token中可编辑的字符串
  • 检测referrer头是否可以伪造

5 对策

  • Captcha(验证码机制)
  • anti-CSRF token
  • Referrer头
  • 降低会话超时时间

推荐阅读更多精彩内容