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

CSRF靶场练习

简述:CSRF漏洞实际很少;条件限制很多;局限性很大;实验仅供参考,熟悉csrf概念和攻击原理即可

Pikachu靶场

CSRF GET

登录用户vince的账户可以看到用户的相关信息;

点击修改个人信息,发现数据包里除了cookie没有任何其他验证信息

通过右键Engagement tools选项找到生成csrf poc

将生成的poc复制放到html文件然后打开;或者直接选择test in browser

注意:这里的payload是通过表单进行提交的;GET请求时也可以直接构造链接进行诱导

如<a href="localhost/vul/csrf/csrfget/csrf_get_edit.php?sex=123&phonenum=123&add=123&email=123&submit=submit">iphone14抽奖立减3000元</a>

打开的页面如下;只有一个确认按钮;剩下的选项被隐藏了;一旦点击就会是用户信息都改为123

CSRF POST

同上;登录allen的账号

同样抓取修改信息的数据构造csrf poc

同样的访问csrf页面,点击按钮

点击后发现用户信息都被修改了

CSRF token

这关加了token验证;普通流程过不去

登录kobe账户;发现时GET方法;但是增加了token验证;每次请求token值都不同;由服务器随机分配的

同样的利用bp生成poc

访问链接

点击恶意链接,发现用户信息并未被修改;这是因为token验证失败的结果;

这说明对于CSRF攻击token验证就可以做到完美防御

绕过思路:可以利用bp插件绕过;下载csrf token trace插件

仅供实验参考;实际不可用;由于浏览器设置了bp作为代理;所以能实现绕过

bp下载对应插件

下载完成后对插件进行设置

此时在点击恶意链接发现用户信息被修改了;这说明该插件在请求发送之前获取了服务器的token值并对请求进行了替换

DVWA 靶场 CSRF

LOW

登录网站;点击修改密码;bp抓包;发现没什么其他验证;GET方法+cookie

通过右键工具生成csrf poc

测试poc

通过浏览器登录验证;发现密码确实被修改为了123

Medium

同样的方法;修改密码;抓包查看数据;发现跟LOW一样

获取csrf poc;

点击链接

跳转之后发现;密码未修改成功;后端进行验证了;推测时referer字段验证(只有这一个不稳定参数)

通过修改referer字段的数据验证了服务器确实检测了该字段;只允许之前访问域名中有该域名信息的链接访问;防止恶意链接跳转访问

解决方法:

1.将文件名改成目标ip地址或者域名

2.将文件放到含有目标ip地址/域名的文件夹下

3.创建一个网站域名包含目标站点的域名;然后把文件放到该网站根目录下即可

方法1和方法2可能不成功;因为referer字段有时候不包含文件名(可能是浏览器设置或者网站安全策略的问题);如果只得到实验结果的话可以手动对referer进行修改

方法3是可以实现的;

通过小皮创建一个dvwa123的网站;因为我把dvwa网站的域名设为dvwa了;新建的域名包含目标网站的域名,将生成的poc文件放到该网站根目录下

再次访问对应的链接,通过抓包发现referer是不包含文件名的;

但是密码被修改了

High

这关使用token验证;不再验证referer字段

使用插件绕过;设置插件配置用于获取和替换目标网站的token

配置完成后直接访问poc链接;发现页面跳转了,但是没有任何提示;通过登录验证发现密码已经修改了

总结

从这几个案例中可以了解csrf的原理和危害已经防御方法

条件:同一浏览器+同时打开至少两个网站+保持登录其中一个存在csrf漏洞的网站并在另一个网站中访问了刚好针对该登录网站的恶意链接

危害:个人数据被修改;资产消失等;现实这种漏洞实现条件苛刻,了解就行

防御方法:token验证,验证码,浏览器同源策略,增加输入原始密码的选项(自定义验证字段)等

10

相关文章:

CSRF靶场练习

简述&#xff1a;CSRF漏洞实际很少&#xff1b;条件限制很多&#xff1b;局限性很大&#xff1b;实验仅供参考&#xff0c;熟悉csrf概念和攻击原理即可 Pikachu靶场 CSRF GET 登录用户vince的账户可以看到用户的相关信息&#xff1b; 点击修改个人信息&#xff0c;发现数据包…...

pgsql的查询语句有没有走索引

使用EXPLAIN ANALYZE命令&#xff1a; EXPLAIN ANALYZE [ ( option [, ...] ) ]statement示例&#xff1a; EXPLAIN ANALYZE SELECT * FROM employees WHERE age > 30;在执行计划中&#xff0c;如果看到索引扫描&#xff08;Index Scan&#xff09;或位图堆扫描&#xff0…...

jenkins部署(docker)

docker部署&#xff0c;避免安装tomcat 1.拉镜像 docker pull jenkins/jenkins2.宿主机创建文件夹 mkdir -p /lzp/jenkins_home chmod 777 /lzp/jenkins_home/3.启动容器 docker run -d -p 49001:8080 -p 49000:50000 --privilegedtrue -v /lzp/jenkins_home:/var/jenkins_…...

Python实现时间序列分析AR定阶自回归模型(ar_select_order算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 时间序列分析中&#xff0c;AR定阶自回归模型&#xff08;AR order selection&#xff09;是指确定自回…...

Springboot自定义线程池实现多线程任务

1. 在启动类添加EnableAsync注解 2.自定义线程池 package com.bt.springboot.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTask…...

linux离线升级openssh方法

检查openssh版本&#xff1a; 升级前openssh 版本为7.4 openssl 版本为1.0.2k Openssh9.6 所需openssl >1.1.1 因此openssl也需要升级。 为了防止升级失败&#xff0c;无法使用SSH登录&#xff0c;首先安装telnet 预防。查看是否安装了telnet 客户端及服务 未安装tel…...

(五)MySQL的备份及恢复

1、MySQL日志管理 在数据库保存数据时&#xff0c;有时候不可避免会出现数据丢失或者被破坏&#xff0c;这样情况下&#xff0c;我们必须保证数据的安全性和完整性&#xff0c;就需要使用日志来查看或者恢复数据了 数据库中数据丢失或被破坏可能原因&#xff1a; 误删除数据…...

VitePress-04-文档中的表情符号的使用

说明 vitepress 的文档中是支持使用表情符号的&#xff0c;像 &#x1f602; 等常用的表情都是支持的。 本文就来介绍它的使用方式。 使用语法 语法 &#xff1a; :表情名称: 例如 &#xff1a; :joy: &#x1f602; 使用案例代码 # 体会【表情】的基本使用 > hello world …...

Redis客户端之Redisson(二)Redisson组件

Redisson的几个常用客户端 一、RedissonClient 1、创建 通过Config对象配置RedissonClient所需要的参数&#xff0c;然后获取RedissonClient对象即可。 Config config new Config(); config.useSingleServer().setAddress("redis://127.0.0.1:6379"); RedissonC…...

用Visual Studio Code创建JavaScript运行环境【2024版】

用Visual Studio Code创建JavaScript运行环境 JavaScript 的历史 JavaScript 最初被称为 LiveScript&#xff0c;由 Netscape&#xff08;Netscape Communications Corporation&#xff0c;网景通信公司&#xff09;公司的布兰登艾奇&#xff08;Brendan Eich&#xff09;在 …...

spring-web搭建

先说说这篇文章看完你能学习到什么吧 1&#xff1a;spring-web是什么原理以及组成&#xff0c;2&#xff1a;spring-web的搭建&#xff08;以普通tomcat服务器做基础&#xff09;&#xff0c;3&#xff1a;敲黑板 1&#xff1a;spring-web是什么原理以及组成 spring-web是sp…...

C++ 之LeetCode刷题记录(二十三)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 118. 杨辉三角 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows …...

在ubuntu上在安装Squid代理服务器

Squid 是一个代理和缓存服务器&#xff0c;它将请求转发到所需的目的地&#xff0c;同时保存请求的内容&#xff0c;当你再次请求相同内容时&#xff0c;他可以向你提供缓冲内容&#xff0c;从而提高访问速度。Squid代理服务器目前支持的协议有&#xff1a;http、SSL、DNS、FTP…...

如何解决 MySQL 的 socket 错误

MySQL 通过使用 socket 文件 来管理与数据库服务器的连接&#xff0c;这是一种特殊类型的文件&#xff0c;用于促进不同进程之间的通信。MySQL 服务器的 socket 文件名为 mysqld.sock&#xff0c;在 Ubuntu 系统中通常存储在 /var/run/mysqld/ 目录中。这个文件会被 MySQL 服务…...

5G智慧钢铁厂数字孪生三维可视化,推进钢铁新型工业化数字化转型

5G智慧钢铁厂数字孪生三维可视化&#xff0c;推进钢铁新型工业化数字化转型。随着科技的不断发展&#xff0c;数字化转型已经成为钢铁企业转型升级的必经之路。而5G技术的广泛应用&#xff0c;为钢铁企业数字化转型提供了新的机遇。其中&#xff0c;5G智慧钢铁厂数字孪生三维可…...

万户 ezOFFICE DocumentEditExcel.jsp SQL注入漏洞

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息维护、客户服务、互动交流和日…...

OpenCV 2 - 矩阵的掩膜操作

1知识点 1-1 CV_Assert(myImage.depth() == CV_8U); 确保输入图像是无符号字符类型,若该函数括号内的表达式为false,则会抛出一个错误。 1-2 Mat.ptr(int i = 0); 获取像素矩阵的指针,索引 i 表示第几行,从0开始计行数。 1-3 const uchar* current = mylmage.ptr(row); 获得…...

linux -- 内存管理 -- 页面分配器

linux内存管理 为什么要了解linux内存管理 分配并使用内存&#xff0c;是内核程序与驱动程序中非常重要的一环。内存分配函数都依赖于内核中一个非常复杂而重要的组件 - 内存管理。 linux驱动程序不可避免要与内核中的内存管理模块打交道。 linux内存管理可以总体上分为两大…...

StarRocks-3.1.0 单节点部署

1. 相关环境准备 FE&#xff1a; /opt/starrocks BE&#xff1a; /opt/starrocks 安装包下载 wget https://releases.starrocks.io/starrocks/StarRocks-3.1.0.tar.gz解压缩 tar -zxvf StarRocks-3.1.0.tar.gz 安装jdk (v2.5 及以上版本建议安装 JDK 11&#xff0c;我们使用…...

2023美赛A题之Lotka-Volterra【完整思路+代码】

这是2023年的成功&#xff0c;考虑到曾经付费用户的负责&#xff0c;2024年可以发出来了。去年我辅导队伍数量&#xff1a;15&#xff0c;获奖M为主&#xff0c;个别F&#xff0c;H&#xff0c;零S。言归正传&#xff0c;这里我开始分享去年的方案。由于时间久远&#xff0c;我…...

使用AI完成Swagger接口类型在前端自动生成的工具

厌倦了手写 TypeScript 类型&#xff1f;我做了一个工具帮你从 Swagger 自动生成 背景&#xff1a;一个让人抓狂的日常 做前端的同学应该都经历过这种场景&#xff1a; 后端给你一个新接口&#xff0c;你打开接口文件&#xff0c;写下&#xff1a; export async function g…...

隐私优先方案:OpenClaw+本地化Qwen3.5-9B处理敏感数据

隐私优先方案&#xff1a;OpenClaw本地化Qwen3.5-9B处理敏感数据 1. 为什么我们需要隐私优先的AI方案 去年我在帮一家诊所做数字化改造时&#xff0c;遇到了一个棘手问题&#xff1a;他们需要自动化处理患者病历&#xff0c;但又担心使用云端AI服务会导致数据泄露。这让我意识…...

中航迈特光束整形金属3D打印技术取得重要进展,多种材料已成功验证

中航迈特在金属3D打印装备研发方面持续发力&#xff0c;尤其是光束整形技术近期取得重要进展。在本届TCT亚洲展&#xff0c;它推出的MT280搭载了无级点环光斑能量智调系统&#xff0c;是光束整形金属3D打印当前较新的看点。据3D打印技术参考了解&#xff0c;无级点环光斑能量智…...

软考培训机构防套路手册:从师资甄别到合同陷阱的7个关键检查点

软考培训机构防套路手册&#xff1a;从师资甄别到合同陷阱的7个关键检查点 第一次报考软考的考生往往会被培训机构"包过""名师押题"的广告吸引&#xff0c;却不知道这个行业存在多少精心设计的消费陷阱。去年某考生花费6800元报名"保过班"&…...

时间序列分类新范式:从技术突破到商业落地全指南

时间序列分类新范式&#xff1a;从技术突破到商业落地全指南 【免费下载链接】InceptionTime 项目地址: https://gitcode.com/gh_mirrors/in/InceptionTime 时间序列分类是数据分析领域的核心挑战&#xff0c;传统方法往往在多尺度特征捕捉、实时性分析和复杂场景适应性…...

kmp算法(完结)

1.重复的子字符串 class Solution { public:void getNext(vector<int> &next,const string s){int j0;next[j]0;for(int i1;i<s.size();i){while(j-1>0&&s[i]!s[j]){jnext[j-1];}if(s[i]s[j]){j;next[i]j;}else{next[i]0;}}}bool repeatedSubstringPa…...

S-UI前端工程化:ESLint与Prettier代码质量保障

S-UI前端工程化&#xff1a;ESLint与Prettier代码质量保障 还在为代码风格混乱、团队协作困难而头疼吗&#xff1f;S-UI作为专业的代理面板项目&#xff0c;通过完善的工程化配置确保了代码质量。本文将为你解析如何在类似项目中配置ESLint和Prettier&#xff0c;打造规范的开…...

hiSHtory 配置管理完全指南:从基础设置到高级调优

hiSHtory 配置管理完全指南&#xff1a;从基础设置到高级调优 【免费下载链接】hishtory Your shell history: synced, queryable, and in context 项目地址: https://gitcode.com/gh_mirrors/hi/hishtory hiSHtory 是一款革命性的 shell 历史记录工具&#xff0c;它不仅…...

Navicat重置工具:macOS用户无限试用Navicat Premium的终极方案

Navicat重置工具&#xff1a;macOS用户无限试用Navicat Premium的终极方案 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac Na…...

后端消息投递可靠性:基于 RabbitMQ 的“双重防线-幂等闭环”模式

后端消息投递可靠性&#xff1a;基于 RabbitMQ 的“双重防线-幂等闭环”模式 一、 发送核心&#xff1a;rabbitTemplate.convertAndSend 重载全览 在 RabbitMQ 的“中控-工人”模式中&#xff0c;中控&#xff08;生产者&#xff09;发送指令的形式决定了任务的可靠性深度。 1.…...