博客
关于我
网络安全-跨站请求伪造(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/

    你可能感兴趣的文章
    Nginx + Spring Boot 实现负载均衡
    查看>>
    Nginx + uWSGI + Flask + Vhost
    查看>>
    Nginx - Header详解
    查看>>
    Nginx Location配置总结
    查看>>
    Nginx upstream性能优化
    查看>>
    Nginx 中解决跨域问题
    查看>>
    Nginx 动静分离与负载均衡的实现
    查看>>
    Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
    查看>>
    nginx 反向代理 转发请求时,有时好有时没反应,产生原因及解决
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    Nginx 反向代理配置去除前缀
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    Nginx 常用配置清单
    查看>>
    nginx 常用配置记录
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 负载均衡与权重配置解析
    查看>>
    Nginx 负载均衡详解
    查看>>