DVWA-9.Weak Session IDs

news2024/9/27 19:22:52

大约

了解会话 ID 通常是在登录后以特定用户身份访问站点所需的唯一内容,如果能够计算或轻松猜测该会话 ID,则攻击者将有一种简单的方法来访问用户帐户,而无需暴力破解密码或查找其他漏洞,例如跨站点脚本。

目的

该模块使用四种不同的方法来设置 dvwaSession cookie 值,每个级别的目标是弄清楚 ID 是如何生成的,然后推断其他系统用户的 ID。

low level

cookie 值应该非常明显地可预测。

源码解析:

这段代码是PHP语言编写的,用于在用户访问网站时创建和设置一个名为dvwaSession的cookie。当用户访问网站时,选择的请求方法是“POST”,代码会检查是否已经设置了一个名为“last_session_id”的会话变量,如果没有,则设置成0。然后,代码会自增last_session_id的值,并将它赋值给cookie。最后,通过使用PHP内置函数setcookie()设置cookie。

注:代码中使用的SESSION及COOKIE需要在之前的代码中进行声明或初始化。

每次点击generate,会获取当前的session,并将其值加1,这种方式明显不安全。

中级

该值看起来比低值更随机,但如果您收集一些,您应该开始看到一种模式。可见,源码为获取用户操作时的时间来作为dvwaSession。


<?php

$html = "";

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $cookie_value = time();
    setcookie("dvwaSession", $cookie_value);
}
?>

 源码解析:当用户访问网站时,选择的请求方法是“POST”,代码将使用PHP内置函数time()获得系统当前时间戳,并将其赋值给cookie。最后,通过使用PHP内置函数setcookie()设置cookie。

高水平

首先确定值的格式,然后尝试找出用作生成值的输入的内容。

Cookie 中还添加了额外的标志,这不会影响挑战,但突出显示了可以添加的额外保护以保护 Cookie。


<?php

$html = "";

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    if (!isset ($_SESSION['last_session_id_high'])) {
        $_SESSION['last_session_id_high'] = 0;
    }
    $_SESSION['last_session_id_high']++;
    $cookie_value = md5($_SESSION['last_session_id_high']);
    setcookie("dvwaSession", $cookie_value, time()+3600, "/vulnerabilities/weak_id/", $_SERVER['HTTP_HOST'], false, false);
}

?>

解析:代码将首先检查是否已经设置了一个名为“last_session_id_high”的会话变量,如果没有,则将其设置为0。然后,代码会自增last_session_id_high的值,并将其通过使用MD5算法处理后赋值给cookie。

通过使用setcookie()函数设置cookie时,该函数允许传递多个参数:

1. 第一个参数是cookie的名称“dvwaSession”。
2. 第二个参数是cookie的值,即通过 MD5 处理后的last_session_id_high的值。
3. 第三个参数是cookie的过期时间,该参数值为当前时间增加1小时,即time()+3600。
4. 第四个参数是cookie作用路径,“/vulnerabilities/weak_id/”表示只对当前网址下/vulnerabilities/weak_id/目录下的网页有效,其他网页无效。
5. 第五个参数是cookie作用域,指定可以访问该cookie的主机名,通过使用$_SERVER['HTTP_HOST']获取当前主机名。
6. 第六个参数是一个可选的布尔值,如果设置为true,则表示将cookie仅通过HTTPS协议发送。
7. 第七个参数是一个可选的布尔值,如果设置为true,则表示将cookie标记为仅通过HTTP协议发送,即无法通过JavaScript访问该cookie。

不可能的水平

在此级别,cookie 值不应可预测,但请随时尝试。

除了额外的标志外,cookie 还与域和挑战路径相关联。


<?php

$html = "";

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $cookie_value = sha1(mt_rand() . time() . "Impossible");
    setcookie("dvwaSession", $cookie_value, time()+3600, "/vulnerabilities/weak_id/", $_SERVER['HTTP_HOST'], true, true);
}
?>

解析:

这段代码是PHP语言编写的,用于在用户访问网站时创建和设置一个名为dvwaSession的cookie。当用户访问网站时,选择的请求方法是“POST”,代码将使用PHP内置函数mt_rand()生成一个随机整数,并与当前时间戳和字符串"Impossible"混合并处理。然后,使用SHA1算法处理该值,并将结果将其赋值给cookie。

通过使用setcookie()函数设置cookie时,该函数允许传递多个参数:

1. 第一个参数是cookie的名称“dvwaSession”。
2. 第二个参数是cookie的值,即使用SHA1算法处理的随机值。
3. 第三个参数是cookie的过期时间,该参数值为当前时间增加1小时,即time()+3600。
4. 第四个参数是cookie作用路径,“/vulnerabilities/weak_id/”表示只对当前网址下/vulnerabilities/weak_id/目录下的网页有效,其他网页无效。
5. 第五个参数是cookie作用域,指定可以访问该cookie的主机名,通过使用$_SERVER['HTTP_HOST']获取当前主机名。
6. 第六个参数是一个可选的布尔值,如果设置为“true”,则表示将cookie仅通过HTTPS协议传输。
7. 第七个参数是一个可选的布尔值,如果设置为“true”,则表示将cookie标记为仅通过HTTP协议发送,即无法通过JavaScript访问该cookie。

注:代码中使用的COOKIE需要在之前的代码中进行声明或初始化。

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

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

相关文章

Qt编写全能播放组件(支持ffmpeg2/3/4/5/6/Qt4/5/6)

一、前言 从代码层面以及自由度来说&#xff0c;用ffmpeg来写全能播放组件是最佳方案&#xff08;跨平台最好最多、编解码能力最强&#xff09;&#xff0c;尽管已经有优秀的vlc/mpv等方案可以直接用&#xff0c;但是vlc/mpv对标主要是播放器应用层面&#xff0c;其他层面比如…

【探索 Kubernetes|集群搭建篇 系列 6】从 0 到 1,轻松搭建完整的 Kubernetes 集群

前言 大家好&#xff0c;我是秋意零。 前面一篇中&#xff0c;我们介绍了 kubeadm 的工作流程。那么今天我们就实际操作一下&#xff0c;探索如何快速、高效地从 0 开始搭建一个完整的 Kubernetes 集群&#xff0c;让你轻松驾驭容器化技术的力量&#xff01;&#xff01; &am…

*问题 F: 2026 模拟测试2(三数之和)

题目描述 有3个整数a1&#xff0c;a2&#xff0c;a3。已知0 < a1, a2, a3 < n&#xff0c;而且a1 a2是2的倍数&#xff0c;a2 a3是3的倍数&#xff0c; a1 a2 a3是5的倍数。你的任务是找到一组a1&#xff0c;a2&#xff0c;a3&#xff0c;使得a1 a2 a3最大。 输入 …

【JavaWeb】IDEA专业版和社区版创建Servlet项目

文章目录 1. 什么是Servlet2. 创建项目3. 引入依赖3.1 在pom.xml中引入依赖3.2 下载jar包引入依赖 4. 创建目录5. 编写代码验证6.总结 1. 什么是Servlet Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app.&#xf…

短视频账号矩阵系统源码--并发量问题怎么开发?

目录&#xff1a; 1.视频存储后端并发量如何实现 2.短视频矩阵系统开发的语言 3.需要对接的技术开放平台开发者对接的api接口 4.功能模型技术创建 文章目录 短视频账号矩阵系统后端如何处理并发量冲突问题前言一、视频存储后端并发量如何实现二、短视频矩阵系统开发语言三、…

RestTemplate发送HTTP请求

一、前言 之前对发送http请求&#xff0c;使用过okhttp&#xff0c;还有httpclient等&#xff0c;这次就直接使用springboot的RestTemplate了。 二、不同的请求方式 我这里只针对POST请求做说明&#xff1a; 下面针对post请求做三种说明&#xff1a; 1、调用的接口参数用Re…

我们来谈谈https

"这一封信只是得到它要回答问题&#xff0c;那个答案早已点燃在心里" 一、 http明文传输 紧接上文这仍然是一款拙劣的http服务器&#xff0c;我们此时在用户数输入栏输入数据信息并提交表单。我们先来认识认识使用到的两个工具软件。 1.PostMan postman是一款支持h…

阿里巴巴首次公开4份【并发编程全彩小册】:模型 + 原理 + 应用 + 模式, 四管齐下

相信大家都是知道的&#xff0c;阿里可以说是程序员的“必修地”每一个程序员都渴望去阿里看看&#xff0c;学习进步一下&#xff0c;但是有时候偏偏局限于自己的技术不到位&#xff01; 但是没关系&#xff0c;就算进不来了阿里&#xff0c;但是可以学习他们的技术呀&#xf…

CONT: Contrastive Neural Text Generation

CONT: Contrastive Neural Text Generation 首先&#xff0c;CONT使用自己的预测中的负面例子&#xff08;3.1&#xff09;来构建B集。&#xff08;原因解释&#xff1a;Kalkstein等人[18]指出&#xff0c;使用不同的对比性样本有助于提高模型的泛化能力。因此&#xff0c;我们…

短视频云端批量混剪实操指南

本文为阿里云智能媒体服务IMS「智能内容创作」实践指南第一期&#xff0c;讲述围绕新媒体广告营销场景&#xff0c;通过“去重策略”全自动批量混剪短视频&#xff0c;助力更高效、更快速地创作优质短视频内容。 欧叔&#xff5c;作者 5G时代&#xff0c;越来越多的企业把短视…

步进电机 力矩选型参考

(* 要提升1KG 的物体&#xff0c;以0 .3 米/秒的速度的提升&#xff0c;步进电机如何选型&#xff1f; 如果不是克服重力则FM*A 力越大加速度越大 *) Clear["Global"] qua 0.2;(* 输入 quality 1kg *) Tao qua*9.8; mps 0.2;(* 输入 0.3 M/S *) dia 0.01;(* 1cm…

多对一(association)、一对多(collection)

1、多对一的处理 多对一的理解&#xff1a; 多个学生对应一个老师如果对于学生这边&#xff0c;就是多对一的现象&#xff0c;即从学生这边关联一个老师&#xff01; 1.1、数据库的设计 CREATE TABLE teacher ( id INT(10) NOT NULL, name VARCHAR(30) DEFAULT NULL, PRIMAR…

Apple Vision Pro -开始使用visionOS

Apple Vision Pro -开始使用visionOS visionOS将熟悉的框架和全新的概念结合在一起&#xff0c;因此您可以为空间计算构建一个全新的应用程序世界。为了帮助您开始您的旅程&#xff0c;我们将介绍一系列会议&#xff0c;涵盖空间计算的构建块以及为该平台设计应用程序和游戏。…

软件开发模型

一、 概述   软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码、测试和维护 阶段。   软件开发模型能清晰、直观地表达软件开发全过程&#xff0c;明确规定了要完成的主要活动和任务&#xff0c;用来作…

rider发布项目报错:[MSB4057] 该项目中不存在目标“WebPublish”。

情景再现 Rider升级到2022.3版本及以上时&#xff0c;发布项目显示&#xff1a; [MSB4057] 该项目中不存在目标“WebPublish”。 或者显示 Error:Current toolset does not support publishing for non-Core ASP.NET projects 原因 这是因为Rider MSBuild版本不一致导致。 解…

基于javaweb(springboot+mybatis)宠物医院预约管理系统设计和实现以及论文报告

基于javaweb(springbootmybatis)宠物医院预约管理系统设计和实现以及论文报告 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言…

参会记录 | 北京智源大会-基础模型前沿技术论坛

2023年6月10日上午&#xff0c;线上参与了北京智源大会&#xff0c;主要观看了2023北京智源大会-基础模型前沿技术论坛&#xff0c;以下是论坛中比较感兴趣的点和思考。 本次论坛的演讲嘉宾如下&#xff1a; 上述嘉宾有来自业界的刘胤晗老师和周彦祺老师&#xff0c;也有来自…

【06】STM32·HAL库开发-STM系统框架 | STM32寻址范围 | STM32存储器映射 | STM32寄存器映射

目录 1.STM32系统框架&#xff08;了解&#xff09;1.1Cortex M内核 & 芯片1.2F1系统架构1.2.1F1系统框架简图1.2.2F1系统框架总图 1.3F4系统架构1.3.1F4系统框架简图&#xff08;F407为例&#xff09;1.3.2F4系统框架总图 1.4F7系统架构1.4.1多重AHB总线矩阵1.4.2F7系统结…

如何防止U盘复制电脑文件?

在我们的工作中&#xff0c;经常需要将重要的文件存在电脑中&#xff0c;我们必须要妥善的保护这些重要数据&#xff0c;那么该如何防止U盘复制电脑中的文件呢&#xff1f; 要想防止U盘复制电脑文件&#xff0c;可从三个方面入手&#xff0c;分别是&#xff1a; 禁止电脑使用U…

吴恩达471机器学习入门课程1第2周——线性回归(单变量)

文章目录 Linear Regression1 导包2 - 问题陈述3 - 数据集可视化数据 4 - 线性回归复习5 - 计算代价代价函数模型预测实现 6 - 梯度下降批量梯度下降法学习参数 Linear Regression 您将使用一个变量实现线性回归&#xff0c;以预测餐厅特许经营的利润。 1 导包 首先&#xf…