DVWA-CSRF-samesite分析

拿DVWA的CSRF为例子
接DVWA的分析,发现其实Impossible的PHPSESSID是设置的samesite=1.
参数的意思参考Set-Cookie

SameSite:控制 cookie 是否随跨站请求一起发送,这样可以在一定程度上防范跨站请求伪造攻击(CSRF)。
下面用DVWA CSRF Low Level来分析下samsite的设置。

DVWA CSRF

Cookie一共包含security和PHPSESSID,这里讲下PHPSESSID(session的cookie)。
在dvwaPage.inc.php中,dvwa_start_session()函数先通过dvwaSecurityLevelGet()函数获得security_level。
之后如果security_level为impossible,则samesite设置为Strict。否则为None(跨站携带cookie)。不同设置的详细解释在Cookie 的 SameSite 属性
最后通过session_set_cookie_params设置session 的cookie。

function dvwa_start_session() {
	// This will setup the session cookie based on
	// the security level.

	$security_level = dvwaSecurityLevelGet();
	if ($security_level == 'impossible') {
		$httponly = true;
		$samesite = "Strict";
	}
	else {
		$httponly = false;
		$samesite = "";
	}

	$maxlifetime = 86400;
	$secure = false;
	$domain = parse_url($_SERVER['HTTP_HOST'], PHP_URL_HOST);

	/*
	 * Need to do this as you can't update the settings of a session
	 * while it is open. So check if one is open, close it if needed
	 * then update the values and start it again.
	*/

	if (session_id()) {
		session_write_close();
	}

	session_set_cookie_params([
		'lifetime' => $maxlifetime,
		'path' => '/',
		'domain' => $domain,
		'secure' => $secure,
		'httponly' => $httponly,
		'samesite' => $samesite
	]);

	session_start();

	// This is the call that will force a new Set-Cookie header with the right flags
	session_regenerate_id();
}
function dvwaSecurityLevelGet() {
	global $_DVWA;

	// If there is a security cookie, that takes priority.
	if (isset($_COOKIE['security'])) {
		return $_COOKIE[ 'security' ];
	}

	// If not, check to see if authentication is disabled, if it is, use
	// the default security level.
	if (in_array("disable_authentication", $_DVWA) && $_DVWA['disable_authentication']) {
		return $_DVWA[ 'default_security_level' ];
	}

	// Worse case, set the level to impossible.
	return 'impossible';
}

与之前在DVWA SCRF的利用不同,因为samesite是跨站设置。所以先用burp抓个包,生成csrf的html,放在kali中。
kali中用python开启简单http服务,在用浏览器去请求kali网站的html,模拟跨站攻击。

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
    <form action="http://192.168.20.156/DVWA/vulnerabilities/csrf/">
      <input type="hidden" name="password&#95;new" value="123" />
      <input type="hidden" name="password&#95;conf" value="123" />
      <input type="hidden" name="Change" value="Change" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
      history.pushState('', '', '/');
      document.forms[0].submit();
    </script>
  </body>
</html>

现在这个源码,可以在CSRF Low Level界面,产生漏洞,修改密码。
此时浏览器Cookie中PHPSESSID的samestie为None。
在这里插入图片描述
之后将红框位置改为Lax
在这里插入图片描述
看下Lax的解释,我们的表单是Get方式提交的,所以设置了Lax,应该还是可以实现CSRF攻击的
在这里插入图片描述
验证CSRF漏洞,发现PHPSESSID的samesite为Lax,并且漏洞还是存在的。
在这里插入图片描述
最后我们把samesite设置为Strict,再次进行验证,发现无法修改密码。
在这里插入图片描述
用burp抓包分析发现,请求修改密码包Cookie中并没有PHPSESSID
在这里插入图片描述
PHPSESSID中samesite设置为Strict。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot加载bean的方式

在SpringBoot的大环境下&#xff0c;基本上很少使用之前的xml配置Bean&#xff0c;主要是因为这种方式不好维护而且也不够方便。 springboto注入bean主要采用下图几种方式&#xff0c; 1、注解装配Bean 1、使用Component等派生注解 只要在类上加类上加 Component 注解即可,该…

[图解]企业应用架构模式2024新译本讲解17-活动记录1

1 00:00:01,070 --> 00:00:04,180 下一个我们要说的就是 2 00:00:04,190 --> 00:00:06,740 活动记录模式了 3 00:00:07,640 --> 00:00:11,210 同样是数据源架构模式 4 00:00:12,300 --> 00:00:18,480 里面的一个&#xff0c;活动记录 5 00:00:18,490 --> 00…

万界星空科技低代码云mes核心功能详解!建议收藏!

在当今数字化时代&#xff0c;制造企业面临着日益复杂的生产管理挑战。为了提高生产效率、降低成本、优化资源利用&#xff0c;许多企业开始转向云端制造执行系统&#xff08;MES&#xff09;。云MES系统作为数字化转型的关键组成部分&#xff0c;具有一系列核心功能和优势&…

Maven深度解析:Java项目构建

Maven是一个由Apache软件基金会维护的软件项目管理和理解工具&#xff0c;它主要服务于基于Java的软件项目。。 Maven深度解析&#xff1a;Java项目构建 引言 在Java开发领域&#xff0c;项目构建和管理是一个复杂而关键的任务。Maven作为这一领域的佼佼者&#xff0c;以其声…

MySQL的综合运用

MySQL版的葵花宝典&#xff0c;欲练此功&#xff0c;挥刀自。。。呃&#xff0c;&#xff0c;&#xff0c;说错了&#xff0c;是先创建两个表&#xff0c;分别是location表和store_info表 示例表为location表和store_info表&#xff0c;如下图所示&#xff1a; 操作一&#xf…

OpenAI Sora:我们来自混乱,我们也将回归混乱

最近&#xff0c;我开始深入了解并整理一些关于Sora这个人工智能模型的系列文章。我的目标是从两个角度深入探讨&#xff1a;一是Sora的技术细节&#xff0c;包括它的原理和功能&#xff1a;OpenAI Sora&#xff1a;距离黑客帝国仅一步之遥&#xff0c;二是Sora的应用前景&…

告别繁琐!一键互换新旧文件夹名,高效批量改名神器助您轻松管理文件库

在日常工作中&#xff0c;我们经常需要对文件夹进行命名和重命名操作。然而&#xff0c;当面对大量需要互换新旧名称的文件夹时&#xff0c;传统的手动操作不仅效率低下&#xff0c;还容易出错。为了解决这一难题&#xff0c;我们特别推出了一款高效、便捷的文件夹批量改名工具…

【GD32F303红枫派使用手册】第二十四节 DHT11温湿度传感器检测实验

24.1 实验内容 通过本实验主要学习以下内容&#xff1a; DHT11操作原理 单总线GPIO模拟操作原理 24.2 实验原理 HT11是一款已校准数字信号输出的温湿度一体化数字传感器。该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点信号&#xff0c;传输距离可达20米以…

nginx负载均衡案例,缓存知识----补充

负载均衡案例 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near great all on wordpress.* to wp172.16.1.% indentified by 1 at line 1 MariaDB [(none)]>…

算法与数据结构面试宝典——回溯算法详解(C#,C++)

文章目录 1. 回溯算法的定义及应用场景2. 回溯算法的基本思想3. 递推关系式与回溯算法的建立4. 状态转移方法5. 边界条件与结束条件6. 算法的具体实现过程7. 回溯算法在C#&#xff0c;C中的实际应用案例C#示例C示例 8. 总结回溯算法的主要特点与应用价值 回溯算法是一种通过尝试…

算法常见手写代码

1.NMS def py_cpu_nms(dets, thresh):"""Pure Python NMS baseline."""#x1、y1、x2、y2、以及score赋值x1 dets[:, 0]y1 dets[:, 1]x2 dets[:, 2]y2 dets[:, 3]scores dets[:, 4]#每一个检测框的面积areas (x2 - x1 1) * (y2 - y1 1)#按…

C语言 while循环1

在C语言里有3种循环&#xff1a;while循环 do while 循环 for循环 while语句 //while语法结构 while&#xff08;表达式&#xff09;循环语句; 比如在屏幕上打印1-10 在while循环中 break用于永久的终止循环 在while循环中&#xff0c;continue的作用是跳过本次循环 …

【数据分析实战】—预测宠物收养状况数据分析

文章目录 数据集数据集描述特征用途注意 宠物收养预测环境准备探索数据帧数据预处理机器学习数据预处理&#xff1a;模型培训和评估&#xff1a;合奏学习&#xff1a; 添加底部名片获取数据集吧&#xff01; 数据集 数据集描述 宠物收养数据集提供了对各种因素的全面调查&…

安规管理:PLM安规管理、PLM安规管理新策略

安规管理&#xff1a;PLM安规管理、PLM安规管理新策略 随着科技的飞速发展&#xff0c;电子产品已经成为我们生活中不可或缺的一部分。然而&#xff0c;这些产品在给人们带来便利的同时&#xff0c;也可能带来触电、火灾、有害辐射等安全隐患。为了保护消费者的生命财产安全&am…

JavaWeb系列二十: jQuery的DOM操作 下

jQuery的DOM操作 CSS-DOM操作多选框案例页面加载完毕触发方法作业布置jQuery获取选中复选框的值jQuery控制checkbox被选中jQuery控制(全选/全不选/反选)jQuery动态添加删除用户 CSS-DOM操作 获取和设置元素的样式属性: css()获取和设置元素透明度: opacity属性获取和设置元素高…

Spring中事务的传播机制

一、前言 首先事务传播机制解决了什么问题 Spring 事务传播机制是包含多个事务的方法在相互调用时&#xff0c;事务是如何在这些方法间传播的。 事务的传播级别有 7 个&#xff0c;支持当前事务的&#xff1a;REQUIRED、SUPPORTS、MANDATORY&#xff1b; 不支持当前事务的&…

中东文明史

转自&#xff1a;想要了解完整的中东文明史&#xff1f;这篇文章成全你 - 知乎 (zhihu.com) 写在前面 中东文明是人类历史上最古老的文明。人类祖先从东非大裂谷走出之后&#xff0c;首先选择定居在中东地区的新月沃土上&#xff0c;并建立了人类历史上有文字记载的第一个文明…

两个基因相关性细胞系(CCLE)(升级)

目录 单基因CCLE数据 ①细胞系转录组CCLE数据下载 ②单基因泛癌表达 CCLE两个基因相关性 ①进行数据整理 ②相关性分析 单基因CCLE数据 ①细胞系转录组CCLE数据下载 基因在各个细胞系表达情况_ccle expression 23q4-CSDN博客 rm(list = ls()) library(tidyverse) libra…

高性能并行计算课程论文:并行网络爬虫的设计与实现

目录 1.绪论 1.1 研究背景 1.2 研究意义 ​​​​​​​1.3 文章结构 2. 网络爬虫相关理论 ​​​​​​​2.1 URL地址格式 ​​​​​​​2.2 网页爬取策略 2.2.1 深度优先策略 2.2.2 广度优先策略 2.2.3 最佳优先策略 ​​​​​​​2.3 网页分析算法 ​​​​​​​2.3.1 正…