博客
关于我
网络安全-跨站请求伪造(CSRF)的原理、攻击及防御
阅读量:133 次
发布时间:2019-02-26

本文共 1128 字,大约阅读时间需要 3 分钟。

跨站请求伪造(CSRF)攻击全解析

简介

跨站请求伪造(Cross-site Request Forgery,简称 CSRF),也被称为 one-click attack 或 session riding。它是一种通过已登录用户的浏览器 session cookie,执行非本意操作的攻击方式。与 XSS(跨站脚本)不同,CSRF 通过利用网站对用户浏览器的信任,完成恶意操作。

原理

CSRF 攻击的核心在于构造特定链接或请求,诱导已登录用户点击。攻击者通过以下步骤完成攻击:

  • 在自己的网站或邮件中引入恶意链接
  • 用户点击链接后,浏览器自动发送带有 session cookie 的请求
  • 该请求被目标网站误解为来自用户的合法操作
  • 攻击示例

    发现过程

    靶机的攻击过程如下:

  • 靶机准备:使用工具如 Burp Suite 或 Postman 发现目标网站的 CSRF 漏洞。
  • 登录靶机:使用账号 vince 123456 登录靶机。
  • 查看页面源码:发现目标页面的 form 数据未加密,存在 CSRF 漏洞。
  • 链接及请求伪造

    攻击者创建了两个 HTML 文件:

  • click.html:引诱用户点击恶意链接
  • requestforgery.html:包含请求伪造的页面
  • 攻击链接示例:

    http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=♀️&phonenum=13098763456&add=shanghai&email=vince@qq.com&submit=submit

    参数 add 被设置为 shanghai,修改地址。

    攻击过程

    攻击步骤:

  • 点击恶意链接:用户登录状态下点击链接
  • 请求伪造页面:跳转至伪造页面
  • 执行操作:界面刷新后显示修改地址
  • 攻击成功

    登录状态下重复操作,攻击成功修改地址。

    防御措施

    用户防护

  • 不登录:用户应避免在同一浏览器中访问敏感页面
  • 不点击链接:不随意点击来自陌生网站的链接
  • 专用浏览器:访问特殊网站时使用专用浏览器
  • 供应商防护

  • token 验证:使用 token 并设置过期时间
  • 验证码:添加简易验证码
  • 二次验证:在关键操作前核验身份
  • 技术防护

  • 防止 XSS:确保网站安全,不可被 XSS 攻击
  • 随机 token:生成随机 token 替代 session cookie
  • SameSite Attribute:设置 SameSite 属性,防止 cookie 被窃取
  • 总结

    CSRF 攻击通过已登录用户的 session cookie 完成,防御措施需从用户、供应商和技术三个层面入手。结合 token 和验证码等措施,可以有效防御 CSRF 攻击。

    转载地址:http://mwtf.baihongyu.com/

    你可能感兴趣的文章
    nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML.
    查看>>
    nestesd exception is java .lang.NoSuchMethodError:com.goolge.common.collect
    查看>>
    nestJS学习
    查看>>
    net core 环境部署的坑
    查看>>
    NET Framework安装失败的麻烦
    查看>>
    Net 应用程序如何在32位操作系统下申请超过2G的内存
    查看>>
    Net.Framework概述
    查看>>
    NET3.0+中使软件发出声音[整理篇]<转>
    查看>>
    net::err_aborted 错误码 404
    查看>>
    NetApp凭借领先的混合云数据与服务把握数字化转型机遇
    查看>>
    NetAssist网络调试工具使用指南 (附NetAssist工具包)
    查看>>
    Netbeans 8.1启动参数配置
    查看>>
    NetBeans IDE8.0需要JDK1.7及以上版本
    查看>>
    NetBeans之JSP开发环境的搭建...
    查看>>
    NetBeans之改变难看的JSP脚本标签的背景色...
    查看>>
    netbeans生成的maven工程没有web.xml文件 如何新建
    查看>>
    netcat的端口转发功能的实现
    查看>>
    Netem功能
    查看>>
    netfilter应用场景
    查看>>
    Netflix:当你按下“播放”的时候发生了什么?
    查看>>