0x0 CSRF概述

Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为”one click”攻击。

0x1 CSRF如何实现

  1. 修改用户信息时没有过多的校验
  2. 被攻击者刚好再浏览相关网站,并且点击了攻击者发送的链接

0x2 CSRF(GET)

0x2.1 黑客lucy修改密码并抓包

http://192.168.153.128/pikachu-labs/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=28661899&add=china&email=qq.com&submit=submit

0x2.2 诱导用户Bobe点击链接

0x2.3 kobe的信息被修改

0x3 如何防御CSRF

  • 服务端的防御:
    1. 验证 HTTP的Referer字段、
    2. 在请求地址中添加 token 并验证、
    3. 在 HTTP 头中自定义属性并验证、
    4. 使用POST替代GET等。
  • 用户端的防御:用户的安全意识与良好的上网习惯。
  • 安全设备的防御:有些厂商的安全产品能基于硬件层面对HTTP 头部的 Referer 字段内容进行检查来快速准确的识别 CSRF 攻击。