当前位置: 首页 > web >正文

CSRF请求伪造

该漏洞主要是关乎于用户,告诫用户不可乱点击链接,提升自我防范,才能不落入Hacker布置的陷阱!

1. cookie与session

简单理解一下两者作用

1.1. 🍪 Cookie:就像超市的会员卡

  1. 存储位置:你钱包里的卡片(存在你的浏览器里)
  2. 作用:你去超市购物时,收银员扫会员卡就能知道你是「黄金会员」(服务器读取 Cookie 知道你的身份)。
  3. 特点
  •      会员卡可能记录你的消费习惯(Cookie 可以存储用户名、浏览记录等)。
    • 会员卡可能会过期(Cookie 可以设置过期时间)。
    • 会员卡可能被伪造(Cookie 可能被篡改,安全性较低)。

1.2. 🎟️ Session:就像健身房的手环

  1. 存储位置:健身房的前台柜子(存在服务器里)。
  2. 作用:你去健身房时,前台给你一个手环(服务器生成 Session ID),凭手环可以自由进出场馆(服务器通过 Session ID 验证你的身份)。
  3. 特点
    • 手环只在今天有效(Session 通常关闭浏览器就失效)。
    • 手环本身没信息,只是对应柜子里的物品(Session ID 本身无意义,但服务器用它找到你的数据)。
    • 手环很难伪造(Session 数据在服务器,更安全)。

    • 1. CSRF攻击原理

      利用用户已登录的身份,在用户不知情的情况下执行恶意操作。比如,用户登录了银行网站,攻击者诱使用户点击一个链接,这个链接会发送一个转账请求,因为用户的浏览器会自动携带cookie,所以服务器会认为是用户自己发的请求。

      2. 什么是CSRF?

      攻击者伪造身份,使用该身份干坏事。像上面的列子,你登入了银行的网站,攻击者诱导你点了一个链接,结果自动用你的账号转账

      2.1. 举个栗子

    • 你进小区时刷了门禁卡(登录网站,有了 Cookie)。
    • 攻击者复制了你的门禁卡(伪造请求),偷偷打开你家门(操作你的账号)。
    • 核心问题:门禁系统只认卡,不认人(网站只验证 Cookie,不检查请求是否真的是你发的)。
    • 2.2. 攻击流程

    • 用户登录:你登录了 银行.com,浏览器保存了 Cookie。
    • 恶意诱导:攻击者发给你一个钓鱼链接(比如伪装成抽奖页面)。
    • 伪造请求:你点开链接,页面偷偷发送一个转账请求到 银行.com(携带你的 Cookie)。
    • 攻击成功:银行以为是你自己操作的,完成转账!
    • 2.3. 条件

    • 用户登入目标网站
    • 目标网站只通过cookie验证身份
    • 攻击者能伪造请求
    • 3. Pikachu实战

      完成csrf:get与post请求

      并实现下面网站csrf迅航帮办网,您的办公管家

      3.1. CSRF(get)

      csrf 1.0

      首先我们需要点击提示登入页面,扮演两个角色,使用bp抓取

      使用提示的登入账户kebo 123456

      对账号进行修改,使用bp拦截,因为是get请求,我们只需要复制请求头,在浏览器url框进行修改数据即可

      复制其url并去浏览器访问,改写

      改为123

      如上图可知,成功

      3.2. CSRF(post)

      csrf 2.0

      post请求不可使用url链接直接访问修改,同源策略,传递cookie

      当用户要更改信息

      改hhh

      bp拦截,hk改为ggg

      使用bp中的工具csfr poc生成HTML文件

      文件内容意思就是将post请求中的信息变成了HTML传递的样子

      将代码复制创建一个HTML文件,并访问

      提交

      3.3.2. 同源策略

    • 意思是:A网站设置的cookie,B网站不能打开。

    • 协议相同
    • 域名相同
    • 端口相同

http://www.xdnf.cn/news/1867.html

相关文章:

  • Pycharm(三):梯度下降法
  • java实现网格交易回测
  • 23种设计模式-行为型模式之责任链模式(Java版本)
  • Python3(10) 元组
  • ubuntu(28):ubuntu系统多版本conda和多版本cuda共存
  • 插件热更新后界面不更新问题
  • Flutter 环境搭建 (Android)
  • 雷达水位计在山洪预警中的作用
  • Babylon.js 材质统一转换指南:将 AssetContainer 中的所有材质转换为 PBRMetallicRoughnessMaterial
  • 【Python-Day 5】Python 格式化输出实战:%、format()、f-string 对比与最佳实践
  • 测试流程?
  • Python3(11) 字典
  • Java学习手册:Java时间类使用
  • 16:00开始面试,16:08就出来了,问的问题有点变态。。。
  • react 常用钩子 hooks 总结
  • 《Keras 3 :使用 TFServing 提供 TensorFlow 模型》
  • Linux中你必须掌握的20个常见命令,提升工作效率!
  • 问答页面支持拖拽和复制粘贴文件,MaxKB企业级AI助手v1.10.6 LTS版本发布
  • conformer编码器
  • DeskGo 4.0(官方版)桌面管理工具软件下载及安装教程
  • JDBC之ORM思想及SQL注入
  • UWA DAY 2025 正式启动|十年筑基,驱动游戏未来引擎
  • Kubernetes 节点 Not Ready 时 Pod 驱逐机制深度解析(上)
  • Web漏洞--XSS之订单系统和Shell箱子
  • Android APP 热修复原理
  • ArrayUtils:数组操作的“变形金刚“——让你的数组七十二变
  • python实现简单的UI交互
  • RT Thread 发生异常时打印输出cpu寄存器信息和栈数据
  • C++11介绍
  • 【阿里云大模型高级工程师ACP习题集】2.5 优化RAG应用提升问答准确度(⭐️⭐️⭐️ 重点章节!!!)