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

CSRF 攻击实验:Token 不存在绕过验证

前言

CSRF(Cross-Site Request Forgery),也称为XSRF,是一种安全漏洞,攻击者通过欺骗用户在受信任网站上执行非自愿的操作,以实现未经授权的请求。

CSRF攻击利用了网站对用户提交的请求缺乏充分验证和防范的弱点。攻击者通常通过在受信任网站上构造恶意的请求链接或提交表单,然后诱使用户点击该链接或访问包含恶意表单的页面。当用户执行了这些操作时,网站会自动发送请求,包含用户的身份验证信息,而用户并不知情。

以下是一个简单的示例,说明可能导致CSRF攻击的代码片段:

<!-- 受信任网站的删除用户请求 -->
<form action="https://example.com/deleteUser" method="POST"><input type="hidden" name="userId" value="123" /><input type="submit" value="Delete User" />
</form>

在这个示例中,攻击者可能在自己的网站上构造一个页面,包含上述代码。当用户访问该页面时,浏览器会自动向`https://example.com/deleteUser`发送POST请求,删除用户ID为123的用户,而用户可能并不知情。

为了防止CSRF攻击,可以采取以下安全措施:

1. CSRF令牌:为每个用户生成独特的CSRF令牌,并将其包含在请求中。服务器在处理请求时验证令牌的有效性,如果令牌无效,则拒绝该请求。

2. SameSite Cookie属性:将Cookie的SameSite属性设置为Strict或Lax,以限制Cookie的跨站点访问。这可以防止攻击者在受信任网站上利用用户的身份验证Cookie。

3. 验证HTTP Referer头部:服务器可以验证请求中的Referer头部,确保请求来自受信任的来源。然而,这种方法并不可靠,因为Referer头部可能被篡改或缺失。

4. 验证用户操作:在执行敏感操作(如删除用户)之前,要求用户进行额外的身份验证,如输入密码或通过二次确认。

5. 随机化请求参数:在请求中包含随机生成的参数,并且要求服务器验证这些参数的有效性。这可以防止攻击者构造恶意请求。

总之,CSRF是一种安全漏洞,攻击者通过欺骗用户在受信任网站上执行非自愿的操作来实现未经授权的请求。为了防止CSRF攻击,应使用CSRF令牌、设置SameSite Cookie属性、验证HTTP Referer头部、验证用户操作和随机化请求参数等安全措施。

实操演示

打开靶场

靶场链接icon-default.png?t=N7T8https://portswigger.net/web-security/csrf/bypassing-token-validation/lab-token-validation-depends-on-token-being-present点击 Access The Lab

该实验室的电子邮件更改功能容易受到 CSRF 的攻击。要完成该实验,请使用您的漏洞利用服务器托管一个 HTML 页面,该页面使用 CSRF 攻击来更改查看者的电子邮件地址。您可以使用以下凭据登录您自己的帐户:wiener:peter

点击 My account

使用靶场给出了账号登录

随便输入值然后打开 BurpSuite 抓包

观察其参数 

先右键生成 CSRF Poc

点击复制 HTML

点击 Go to exploit server 

粘贴到 Body 中点击 View exploit

显示 CSRF Token 值无效

将其更改为 GET 方式请求也同样如此

补充知识

在CSRF防护中,令牌验证的方式通常取决于令牌是否存在。这是因为令牌的存在与否决定了服务器在处理请求时是否需要进行令牌验证。以下是对CSRF中令牌验证与令牌存在的关系的理解:

1. 令牌存在:如果CSRF令牌存在于请求中,服务器会对令牌进行验证以确保其有效性。验证通常包括检查令牌的正确性、时效性和唯一性等。如果令牌验证成功,则服务器会继续处理请求。如果令牌验证失败,则服务器会拒绝请求并返回错误响应。

2. 令牌不存在:如果CSRF令牌在请求中不存在,服务器可以根据具体情况来决定如何处理。一种常见的做法是拒绝处理请求,即使请求本身是合法的。这是因为缺少令牌可能意味着请求可能是来自恶意的第三方网站,存在CSRF攻击的风险。服务器返回错误响应或要求用户重新进行身份验证等。

需要注意的是,令牌验证应该是在服务器端进行的,而不是在客户端。令牌应该在服务器端生成,并在每个请求中进行验证。客户端负责将令牌添加到请求中,以便服务器进行验证。

CSRF令牌的生成和分发通常会在用户登录或访问受保护页面时进行。服务器会将令牌存储在会话(Session)或Cookie中,并将其添加到每个请求中。客户端可以通过从会话或Cookie中读取令牌,并将其添加到请求中,以进行验证。

综上所述,CSRF中令牌验证的方式取决于令牌是否存在。如果令牌存在,服务器会对令牌进行验证以确保其有效性。如果令牌不存在,服务器可能会拒绝处理请求或采取其他安全措施。令牌的生成和分发应在服务器端进行,并由客户端添加到请求中。这样可以增强CSRF防护的安全性和可靠性。

尝试删除 csrf 参数值重新够 CSRF Poc 

更改成功!!

更改 HTML 邮箱中的地址点击 Deliver exploit to victim

成功通关! 

相关文章:

CSRF 攻击实验:Token 不存在绕过验证

前言 CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;也称为XSRF&#xff0c;是一种安全漏洞&#xff0c;攻击者通过欺骗用户在受信任网站上执行非自愿的操作&#xff0c;以实现未经授权的请求。 CSRF攻击利用了网站对用户提交的请求缺乏充分验证和防范…...

c#教程——索引器

前言&#xff1a; 索引器&#xff08;Indexer&#xff09;可以像操作数组一样来访问对象的元素。它允许你使用索引来访问对象中的元素&#xff0c;就像使用数组索引一样。在C#中&#xff0c;索引器的定义方式类似于属性&#xff0c;但具有类似数组的访问方式。 索引器&#x…...

麒麟服务器上执行可执行脚本报错:bash: ./xx: Permission denied(完整版)

前情提要 本来都好好的&#xff0c;我重启了服务器以后就开始报这个错了&#xff0c;而我的麒麟服务器目前是这个情况&#xff1a; 已经在服务器上配置好了 ssh 免密登录&#xff0c;在命令行里执行 ssh -o StrictHostKeyCheckingno -p 22 usernamexxx.xxx.xxx.xxx 可以正常登…...

触觉美学:移动端UI设计的视觉盛宴

...

前端起dev从110秒减少到7秒, 开发体验大幅提升

[webpack由浅入深]系列的内容 第一层: 了解一个小功能的完整流程. 看完可以满足好奇心和应付原理级别面试.第二层: 源码陪读, webpack源码比较灵活, 自己看容易陷入迷惑. 文章里会贴出关键流程的代码来辅助阅读源码. 如果你正在自己调试, 在这些方法上下断点会节约你宝贵的时间…...

Flink CDC 原理

简介 Flink CDC&#xff08;Change Data Capture&#xff09;是 Apache Flink 提供的一个变更数据捕获工具集。它可以监控数据库的变更&#xff0c;并将这些变更实时地以流的形式提供给下游系统&#xff0c;这些变更包括插入、更新和删除操作。 Flink CDC 适用于需要实时数据…...

Axure网上超市用户端APP原型 (O2O生鲜电商/买菜到家/数字零售/京东到家/抖音超市领域)

作品概况 页面数量&#xff1a;共 100 页 源文件格式&#xff1a;rp格式&#xff0c;兼容 Axure RP 9/10&#xff0c;非程序软件无源代码 适用领域&#xff1a;O2O生鲜电商、网上超市、买菜到家、数字零售 作品特色 本作品为网上超市用户消费端Axure交互原型&#xff0c;属于…...

外包公司中能学到技术的都是那些人?

在外包公司能够有效学习并提升技术的人&#xff0c;通常具备以下特点和行为模式&#xff1a; 自我驱动力强&#xff1a;这类人有强烈的学习欲望和提升自我的动机&#xff0c;不依赖公司安排的培训&#xff0c;而是主动寻找学习资源&#xff0c;如在线课程、技术书籍、开源项目等…...

JavaEE初阶-多线程进阶2

文章目录 前言一、CAS1.1 CAS的概念1.2 原子类1.3 CAS的ABA问题 二、JUC中常用类2.1 Callable接口2.2 ReentrantLock&#xff08;可重入&#xff09;2.3 Semaphore信号量2.4 CountDownLatch类2.5 CopyOnWriteArrayList类2.6 ConcurrentHashMap 前言 对于多线程进阶的部分&…...

B/S和C/S框架

一、B/S框架 B/S框架是指Browser/Server框架&#xff0c;即基于浏览器和服务器的应用程序开发框架。在B/S架构中&#xff0c;用户通过浏览器&#xff08;Browser&#xff09;访问服务器&#xff08;Server&#xff09;上的应用程序或网站&#xff0c;而无需在用户端安装额外的客…...

机器学习中常用的几种距离——欧式、余弦等

目录 一、欧式距离&#xff08;L2距离&#xff09;二、曼哈顿距离&#xff08;L1距离&#xff09;三、汉明距离四、余弦相似度 一、欧式距离&#xff08;L2距离&#xff09; &#xff08;1&#xff09;二维空间的距离公式&#xff08;三维空间的在这个基础上类推&#xff09;&…...

2024 Google I/O Android 相关内容汇总

2024 Google I/O Android 相关内容汇总 本次 Google I/O 的核心虽然是 AI &#xff0c;但是 Android 也是作为主要议题出现&#xff0c; Android 部分可以简单分为产品和开发相关内容&#xff0c;接下来主要介绍这两部分的相关更新。 重点开始开发相关&#xff0c;内容不少 产…...

# 从浅入深 学习 SpringCloud 微服务架构(十八)

从浅入深 学习 SpringCloud 微服务架构&#xff08;十八&#xff09; 一、开源配置中心 Apollo&#xff1a;概述 1、开源配置中心 Apollo Apollo -A reliable configuration management system Apollo(阿波罗)是携程框架部门研发的分布式配置中心&#xff0c;能够集中化管理…...

在SQL Server中使用临时表与普通表的性能差异分析

在SQL Server中&#xff0c;临时表和普通表的性能确实存在差异&#xff0c;具体表现和影响因素如下&#xff1a; 临时表和普通表的区别 存储位置&#xff1a; 临时表&#xff1a;存储在tempdb数据库中&#xff0c;生命周期仅限于当前会话或批处理。当会话结束或批处理完成时&a…...

数据中台管理系统原型

数据中台是一个通用性的基础平台&#xff0c;适用于各类行业场景&#xff0c;数据中台包含多元数据汇聚、数据标准化、数据开发、数据共享、数据智能、数据资产管理等功能&#xff0c;助力企业数字化转型。 数据汇聚 数据汇聚是将不同系统、不同类型的多元源数据汇聚至目标数据…...

数据库练习

在数据库中创建一个表student&#xff0c;用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); 1、向student表中添加一条新记录&#xff08;记录中id字段的值为1&#xff0c;name字段的值为"monkey"&#xff0c…...

Rust学习笔记(上)

前言 笔记的内容主要参考与《Rust 程序设计语言》&#xff0c;一些也参考了《通过例子学 Rust》和《Rust语言圣经》。 Rust学习笔记分为上中下&#xff0c;其它两个地址在Rust学习笔记&#xff08;中&#xff09;和Rust学习笔记&#xff08;下&#xff09;。 编译与运行 Ru…...

【SRC实战】文件名回显导致反射型XSS,URL重定向

挖个洞先 https://mp.weixin.qq.com/s/hnrm-snkETuR-gqPOSnQXQ “ 以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合 ” 01 — 漏洞证明 一、反射型XSS “ 文件名回显&#xff0c;能否触发XSS&#xff1f;” 1、灯塔扫到敏感文件&#xff0c;发现1.txt会在…...

mysql高版本导入低版本Unknown collation: utf8mb4_0900_ai_ci

MySQL数据库导入SQL报错 Unknown collation: ‘utf8mb4_0900_ai_ci‘ 错误原因&#xff1a;我本地的MySQL数据包版本为8.0的&#xff0c;而服务器上的MySQL版本为5.7&#xff0c;双方的版本不兼容&#xff0c;这样就导致我在本地写好的SQL无法在服务器上的MySQL上运行。 解决办…...

运筹说 第114期 | 其他排队模型简介

前面我们已经学习了一些排队模型&#xff0c;对排队系统有了基本认知&#xff0c;本期小编带大家继续来学习其他排队模型的内容。 一、有限源排队模型 顾客源为有限的这类排队问题的主要特征是顾客总数是有限的&#xff0c;如只有m个顾客。每个顾客来到系统中接受服务后仍回到…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...