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 flagssession_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。
在这里插入图片描述

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

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

相关文章

使用Python进行数据分析和自动化

组织严重依赖数据分析和自动化来提高运营效率。在本文中&#xff0c;我们将使用 Python&#xff08;一种用于通用编程的高级编程语言&#xff09;的示例来研究数据分析和自动化的基础知识。 什么是数据分析&#xff1f; 数据分析是指检查、清理、转换和建模数据的过程&#xf…

FydeOS导入VMware虚拟机之后,如何扩展系统硬盘大小?

前言​ 最近查询FydeOS系统的小伙伴不在少数啊&#xff01;可见这个系统是相当nice的&#xff0c;小伙伴们都是尝试尝试。 看到有不少小伙伴通过VMware虚拟机使用FydeOS&#xff0c;那么你就肯定知道官方包导入VMware之后&#xff0c;硬盘只显示分区了20GB。 如果这时候使用Fy…

Redis连接池配置:深入探索JedisPoolConfig

Redis是一种广泛使用的高性能键值存储系统&#xff0c;它支持多种类型的数据结构&#xff0c;如字符串、哈希、列表、集合等。在Java开发中&#xff0c;Jedis是Redis官方推荐的客户端库之一。然而&#xff0c;频繁地创建和销毁Redis连接是一个资源密集型的操作&#xff0c;因此…

2024年最新建筑八大员(劳务员)考试试题。高效备考!!!

1.房屋建筑工程施工总承包企业资质分为(  )。 A.特级、一级、二级、三级 B.特级、一级、二级 C.一级、二级、三级 D.一级、二级、三级 答案:A 2.1个工人作业1天&#xff08;&#xff09;的时间算作1个工日&#xff0c;作业1个小时算作1个工时。 A.6小时 B.8小时 C.1…

物理服务器会不会被DDOS攻击?

物理服务器同样可能遭受分布式拒绝服务&#xff08;DDoS&#xff09;攻击。DDoS攻击的目的是通过大量的请求淹没目标服务器或网络&#xff0c;使其无法处理合法用户的请求&#xff0c;从而导致服务不可用。这种攻击并不区分服务器是物理的还是虚拟的&#xff0c;只要服务器连接…

香港服务器ssh连接失败怎么处理?

当遇到香港服务器的SSH连接失败时&#xff0c;可能有多种原因导致&#xff0c;以下是一些常见的排查和处理方法&#xff1a; 1. 确认网络连接和服务器状态 网络连接问题&#xff1a; 确保本地网络正常&#xff0c;可以访问其他网站和服务。 使用 ping 命令检查服务器的网络连通…

web应用-Nginx学习笔记02-配置项结构和内容

操作环境介绍 操作系统信息 ubuntu18.04 1.如何安装得到一个nginx应用&#xff1f; 安装nginx应用&#xff0c;安装方式&#xff0c;通过apt方式安装&#xff1b; apt install nginx nginx版本信息查看 rootub1804:/etc/nginx# nginx -v nginx version: nginx/1.14.0 (Ubu…

同城跑腿小程序的崛起与用户体验革新

随着移动互联网的飞速发展&#xff0c;人们的生活方式正在发生深刻的变化。在这个快节奏的时代&#xff0c;时间成为了最宝贵的资源。在这样的背景下&#xff0c;同城跑腿小程序应运而生&#xff0c;以其高效、便捷的服务特性&#xff0c;迅速赢得了广大用户的青睐。本文将探讨…

puppet运维自动化

在现代信息技术管理中&#xff0c;自动化运维工具的应用已成为企业提升效率、降低成本的关键手段之一。Puppet作为一种强大的运维自动化工具&#xff0c;因其高效、灵活和可扩展的特点&#xff0c;受到越来越多企业的青睐。本文将探讨Puppet在运维自动化中的应用&#xff0c;包…

SpringBoot使用滑动窗口限流防止用户重复提交(自定义注解实现)

在你的项目中&#xff0c;有没有遇到用户重复提交的场景&#xff0c;即当用户因为网络延迟等情况把已经提交过一次的东西再次进行了提价&#xff0c;本篇文章将向各位介绍使用滑动窗口限流的方式来防止用户重复提交&#xff0c;并通过我们的自定义注解来进行封装功能。 首先&a…

代码随想录算法训练营第三十三天|452. 用最少数量的箭引爆气球、 435. 无重叠区间、 763.划分字母区间

452. 用最少数量的箭引爆气球 题目链接&#xff1a;452. 用最少数量的箭引爆气球 文档讲解&#xff1a;代码随想录 状态&#xff1a;没想出来 思路&#xff1a;对气球终点位置排序&#xff0c;从第一个气球终点位置射出箭&#xff0c;看这支箭可以尽可能穿过几个气球&#xff0…

Excel 宏录制与VBA编程 —— 12、日期相关

代码1 - 获取当前时间日期信息 代码2 - 时间日期格式 代码3 - 时间日期计算 代码4 - 时间日期案例 关注 笔者 - jxd

OceanBase v4.2 特性解析:如何用分页保序功能解决MySQL模式分页查询不稳定

导言 在MySQL业务迁移OceanBase过程中&#xff0c;经常遇到的一个问题是分页查询结果的不稳定性&#xff0c;这通常需要数据库DBA介入绑定执行计划。下面简单举个例子&#xff0c;以便大家更好地理解为什么有的分页查询&#xff0c;在原来的MySQL数据库下运行没有问题&#xf…

免费悬浮翻译器哪个好?测评5款悬浮翻译器

在享受休闲时光时&#xff0c;我们通常都希望不被打扰&#xff0c;对吧&#xff1f; 然而&#xff0c;有时打扰我们的并非是外界的干扰&#xff0c;而是在观看外语视频时&#xff0c;无法理解视频内容的烦躁感。 不过&#xff0c;今天本文将为大家揭开几款屏幕悬浮翻译软件的…

Python 脚本文件如何重新启动自身进程

有时候&#xff0c;我们需要重新启动正在运行的 Python 脚本程序。这不是简单的关闭程序再运行&#xff0c;需要从程序内部重新运行该程序。 使用 os.execv() 方法重新启动 Python 脚本。os.execv(path, args) 函数通过替换进程来执行新程序。 import os import sysdef resta…

基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还…

深入理解二叉树遍历:前序、中序、后序和层级遍历的Java实现

前言 二叉树的遍历方式是对树中节点进行访问的方法&#xff0c;常见的包括前序、中序、后序和层级遍历。本文将深入探讨这些遍历方式的实现原理&#xff0c;并使用Java代码和图示进行详细讲解。 二叉树遍历介绍 在二叉树中&#xff0c;遍历指的是按照一定顺序访问树中的所有…

ctr/cvr预估之WideDeep模型

ctr/cvr预估之Wide&Deep模型 在探索点击率&#xff08;CTR&#xff09;和转化率&#xff08;CVR&#xff09;预估的领域中&#xff0c;我们始终追求的是一种既能捕获数据中的线性关系&#xff0c;又能发现复杂模式的模型。因子分解机&#xff08;Factorization Machines, …

华为大咖说 | 从《庖丁解牛》谈项目经理的三重境界

本文作者&#xff1a; 李庆&#xff08;华为项目管理能力中心高级项目管理专家&#xff09; 全文约1945字&#xff0c;阅读约需6分钟&#xff0c;请仔细看看哦~ 近日我重读庄子的《庖丁解牛》&#xff0c;感悟良多&#xff0c;有了更深的理解。以前读到此故事时&#xff0c;只…

微服务SpringCloud,SpringAliBaBa(2)

微服务02 1.网关路由 网络的关口&#xff0c;负责请求的路由、转发、身份校验。 有了网关之后&#xff0c;微服务的地址不用在暴露了&#xff0c;就暴露个网关地址。 快速入门 routes代表一套路由&#xff0c;pridicates是规则&#xff0c;对请求做出判断&#xff0c;看是哪…