CSRF 跨站请求伪造学习笔记

参考文章:

  • 漏洞挖掘之CSRF
  • CSRF花式绕过Referer技巧

What-是什么

CSRF(Cross-site request forgery)跨站请求伪造。攻击者通过构造特殊链接或者页面,盗用用户身份,以合法名义完成一些非法勾当。
大致流程:

  • 正常用户访问并登陆 A 网站

  • 于此同时,正常用户被攻击者欺骗

    • 第一种:访问恶意网站
      恶意网站中存在着恶意代码,会向 A 网站发起请求,比如说转账,发表评论,发布文章、关注用户等等一些正常的操作。由于用户已登录 A 网站存储了 A 网站的 cookie,所以浏览器会带着用户的 cookie 去完成这些操作。

    • 第二种:打开恶意链接
      在 A 网站上的一些操作是通过 GET 请求的方式完成的,比如说关注用户 www.xxx.com/like.php?target_user=xxx,攻击者通过构造该链接然后将其发送给受害用户,并带上一些迷惑性的话语,例如:免费看 VA 大片等,受害用户出于好奇心的驱使,点击了该链接,浏览器便带着用户的 cookie 去完成关注操作,而用户却浑然不知,只是在心中默骂了一句:卧槽,说好的大片呢。

  • 至此,一次 CSRF 攻击已经完成。

Why-为什么

怪就怪网站没有做验证,怪就怪浏览器记住了我的 cookie,怪就怪黑客说的话太诱人,怪就怪用户好奇心太重

Where-在哪里

  • 购物类网站

    • 添加/删除 购物车、收货地址、订单
    • 关注店铺
  • 论坛类网站

    • 关注博主
    • 发表/删除 文章、评论
  • Jsonp劫持、CORS配置错误

  • 用户与服务器交互之处

How-怎么办

  • GET 类型

    • 构造链接发送给用户
    • 构造 HTML 标签