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.mzph.cn/bicheng/78962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python循环与遍历详解:从入门到进阶

在Python编程中,循环和遍历是最基础但极其重要的知识点。理解并掌握这部分内容,是编写高效、清晰代码的前提。本文将从for循环和while循环的基本语法出发,逐步深入探讨range、enumerate、zip、列表推导式、字典遍历等Python中常见的遍历技巧&…

Python-MCPServer开发

Python-MCPServer开发 使用FastMCP开发【SSE模式的MCPServer】,熟悉【McpServer编码过程】【McpServer调试方法】 1-核心知识点 1-熟悉【SSE模式的MCPServer】开发2-熟悉【stdio模式的MCPServer】开发3-熟悉【启动MCPServer】的三种方式 3.1-直接启动:python mcp_s…

高级项目管理

在信息系统项目管理工作中,组织管理者和项目管理者,有时还会面临多项目的管理,或组织级的项目管理、项目的量化管理等课题。 其中,项目集管理、项目组合管理和组织级项目管理,为多项目管理和组织级管理提供有效指导&a…

tarjan缩点+强联通分量

【模板】缩点https://www.luogu.com.cn/problem/P3387 首先我们要理解这道题为什么要用缩点 题目说的是有向图,如果无环的话就可以用DP来解决了 由于可以走重复的点,所以一个环上的点可以看成是一个点,它的点权就等于该环上所有点的点权之…

OSCP:获取全交互式 Windows 反向 Shell

简介 在本文中,我们将探讨获取完全交互式 Windows 反向 Shell 的各种方法,从利用内置工具到采用先进技术以获得更好的控制和功能。 通过 Invoke-ConPtyShell 我获取完全交互式 Windows 反向 Shell 的首选方法是通过 Invoke-ConPtyShell 脚本。当 Wind…

免费超好用的电脑操控局域网内的手机(多台,无线)

使用 第一步 解压QtScrcpy压缩包,并运行QtScrcpy.exe 第二步 2.1 手机开启开发者模式(设置>关于本机>版本信息>连点10下“版本号”) 2.2 开启 USB调试 和 无线调试(设置>开发者选项> USB调试 无线调试&#xf…

Go语言内存管理

本章节,就来学习一下go语言的内存模型,看一下内存的分配,存储都是如何实现的,与此同时,在正式开始今天的主题之前,首先先来学习操作系统基于这一方面的内容,来看看是如何管理内存的吧 本章及节…

【docker】启动临时MongoDB容器、挂载数据卷运行数据库服务,并通过备份文件恢复MongoDB数据库备份数据

‌启动临时 MongoDB 容器、挂载数据卷运行数据库服务,并通过备份文件恢复数据 1.命令分解与功能说明1.1.启动一个临时 MongoDB 容器‌,并进入交互式终端(1)执行命令(2)实现功能‌(3)…

【最新 MCP 战神手册 08】工具使用详解:实现 AI 行动

文章目录 1. 开始啦!2. 第一部分:设计高效且安全的工具3. 第二部分:定义工具蓝图——参数、输出与约束条件4. 第三部分:弥合差距:LLM 兼容性(函数调用)5. 第四部分:实施与测试的最佳实践1. 开始啦! 在前几章中,我们将工具介绍为 AI 模型在 MCP 客户端引导下向 MCP 服…

介绍 IntelliJ IDEA 快捷键操作

IntelliJ IDEA 快捷键操作 1. 编辑与导航2. 查找与替换3. 调试与运行4. 导航与视图5. 重构与生成6. 高级快捷键(提高效率)注意事项 IntelliJ IDEA 是一款功能强大的集成开发环境,掌握其常用快捷键可以显著提升开发效率。但是有些小伙伴并不清…

Javascript 中作用域的理解?

一、作用域的类型 1. 全局作用域(公司大门外) 范围:整个 JavaScript 文件变量:像贴在公告栏上的信息,所有人可见例子:const companyName "阿里"; // 全局变量,任何地方都能访问 fu…

Leetcode刷题记录22——滑动窗口最大值

题源:https://leetcode.cn/problems/sliding-window-maximum/description/?envTypestudy-plan-v2&envIdtop-100-liked 题目描述: 思路一: 暴力遍历法,通过一个长度为k的滑动窗口遍历nums,将其中最大的数依次记…

Apache Flink的架构设计与运行流程说明

在大数据领域,实时计算的重要性随着业务需求的爆发式增长愈发凸显。从电商的实时销量监控到金融的高频交易风控,从物联网设备的实时告警到社交平台的热点追踪,企业对“秒级甚至毫秒级”数据处理能力的需求已成为刚需。在众多实时计算框架中&a…

经典算法 最长单调递增子序列

最长单调递增子序列 问题描述 找出由n个数组成的序列的最长单调递增子序列。 示例输入 9 2 1 5 3 6 4 8 9 7示例输出 5示例输入 6 5 6 7 1 2 8示例输出 4c代码(动态规划 O(n^2)) #include<bits/stdc.h>using namespace std;int main() {int n, ans 0;cin >&g…

【语法】C++继承中遇到的问题及解决方法

目录 1.子类构造函数中初始化父类成员 2.子类显式调用父类的析构函数 第一种说法&#xff1a;重定义 反驳&#xff1a; 第二种说法&#xff1a;operator~ 3.因编译器版本过低而出现错误 贴主在学习C的继承时&#xff0c;遇到了很多问题&#xff0c;觉得很变态&#xff0c…

前缀和 后缀和 --- 寻找数组的中心下标

题目链接 寻找数组的中心下标 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那么左侧数之和视为 0 &#xff0c;因为…

NVIDIA --- 端到端自动驾驶

前言 参加了NVIDIA 高级辅助驾驶开发者实验室的活动&#xff0c;本次活动基于 NVIDIA 汽车行业的端到端解决方案——DRIVE AGX™ 平台&#xff0c;实现高级别智能和安全性的软硬件开发工具和 AV 基础设施。并且NVIDIA自动驾驶实验室推出了一系列自动驾驶算法最新的前沿研究视频…

SQL实战:03之SQL中的递归查询

文章目录 概述SQL 中的递归实现题目一:分析组织层级题解题目二:树节点求解题解步骤一&#xff1a;通过递归查询出每个节点的上级节点和下级节点分布步骤二&#xff1a;分组统计 概述 最近刷题时遇到了一道需要根据组织层级来统计各个层级的一些数据&#xff0c;当时碰到时的第…

MySQL 语法与基础完全指南

MySQL 是最流行的开源关系型数据库管理系统之一&#xff0c;广泛应用于 Web 应用程序开发。本文将全面介绍 MySQL 的基础知识和完整语法结构。 一、MySQL 基础概念 1. 数据库基本术语 数据库(Database): 存储数据的集合 表(Table): 数据以表格形式组织 列(Column): 表中的一…

【Sqlalchemy Model转换成Pydantic Model示例】

【Sqlalchemy Model转换成Pydantic Model示例】 由于Sqlalchemy和Pydantic的模型字段类型可能有差异, 所以需要一个通用的装换类 def sqlalchemy_to_pydantic_v2(sqlalchemy_model, pydantic_model):"""通用函数&#xff0c;将 SQLAlchemy 模型实例转换为 Pyd…