DVWA-9.Weak Session IDs
大约
了解会话 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需要在之前的代码中进行声明或初始化。

相关文章:
DVWA-9.Weak Session IDs
大约 了解会话 ID 通常是在登录后以特定用户身份访问站点所需的唯一内容,如果能够计算或轻松猜测该会话 ID,则攻击者将有一种简单的方法来访问用户帐户,而无需暴力破解密码或查找其他漏洞,例如跨站点脚本。 目的 该模块使用四种…...
Bug序列——容器内给/root目录777权限后无法使用ssh免密登录
Linux——创建容器并将本地调试完全的前后端分离项目打包上传docker运行_北岭山脚鼠鼠的博客-CSDN博客 接着上一篇文章结尾出现403错误时通过赋予/root目录以777权限解决403错误。 chmod 777 /root 现在又出现新的问题,远程ssh无法免密登录了,即使通过…...
华为OD机试真题 JavaScript 实现【服务中心选址】【2023Q1 100分 】
一、题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址,使服务中心到所有区域的距离的总和最小。 给你一个数组 positions,其中 positions[i] [le…...
<Linux>《OpenSSH 客户端配置文件ssh_config详解》
《OpenSSH 客户端配置文件ssh_config详解》 1、 ssh获取配置数据顺序2、关键字2.1 Host2.2 Match2.3 AddKeysToAgent2.4 AddressFamily2.5 BatchMode2.6 BindAddress2.7 BindInterface2.8 CanonicalDomains2.9 CanonicalizeFallbackLocal2.10 CanonicalizeHostname2.11 Canonic…...
Linux内核中内存管理相关配置项的详细解析8
接前一篇文章:Linux内核中内存管理相关配置项的详细解析7 十一、Enable KSM for page merging 对应配置变量为:CONFIG_KSM。 此项只有选中和不选中两种状态,默认为选中。 内核源码详细解释为: Enable Kernel Samepage Merging:…...
深入浅出Vite:Vite打包与拆分
一、背景 在生产环境下,为了提高页面加载性能,构建工具一般将项目的代码打包(bundle)到一起,这样上线之后只需要请求少量的 JS 文件,大大减少 HTTP 请求。当然,Vite 也不例外,默认情况下 Vite 利用底层打包引擎 Rollup 来完成项目的模块打包。 某种意义上来说,对线上环…...
大数据ETL工具Kettle
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言最近公司在搞大数据数字化,有MES,CIM,WorkFlow等等N多的系统,不同的数据源DB,需要将这些不同的数据源DB里的数据进行整治统一…...
大学物理(上)-期末知识点结合习题复习(4)——质点运动学-动能定理 力做功 保守力与非保守力 势能 机械能守恒定律 完全弹性碰撞
目录 1.力做功 恒力作用下的功 变力的功 2.动能定理 3.保守力与非保守力 4.势能 引力的功与弹力的功 引力势能与弹性势能 5.保守力做功与势能的关系 6.机械能守恒定律 7.完全弹性碰撞 题1 题目描述 题解 题2 题目描述 题解 1.力做功 物体在力作用下移动做功…...
这两个小众的资源搜索工具其实很好用
01 小不点搜索是一个中国网络技术公司开发的网盘搜索引擎,该网站通过与多个主流网盘进行整合,为用户提供一种快速查找和下载文件的方式。小不点搜索因其高效性、便利性和实用性受到了广大用户的喜爱。 在技术实现上,小不点搜索拥有先进的搜…...
Java设计模式(六)— 单例模式1
系列文章目录 单例模式介绍 单例模式之静态常量饿汉式 单例模式之静态代码饿汉式 单例模式之线程不安全懒汉式 文章目录 系列文章目录前言一、单例设计模式介绍二、单例设计模式八种方式三、单例—静态常量饿汉式1.静态常量饿汉式介绍2.静态常量饿汉式案例3.静态常量饿汉式优缺…...
iOS -- isa指针
isa指针:isa指针是一个指向对象所属类或元类的指针。它决定了对象可以调用的方法和属性。isa指针在对象的结构中存在,并且在运行时会被自动设置。isa 指针,表示这个对象是一个什么类。而 Class 类型, 也就是 struct objc_class * …...
【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析
系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》 本文链接:《【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析》 透传配置文件位于:qnx.git\apps\qnx_ap\target\hypervisor\gvm\ivi\la\linux-la.config 它是在QNX Ho…...
新型糖基化氨基酸:Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH,化学CAS号174783-92-7
●英文名:Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH ●外观以及性质: Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH中通过对蛋白进行复杂蛋白糖基化修饰,细胞产生了极大丰度的蛋白质类型;通过对各类糖基…...
网络安全(黑客)怎么自学?
最近看到很多问题,都是小白想要转行网络安全行业咨询学习路线和学习资料的,作为一个培训机构,学习路线和免费学习资料肯定是很多的。机构里面的不是顶级的黑阔大佬就是正在学习的同学,也用不上这些内容,每天都在某云盘…...
Vue学习 之 MacOS 安装 webpack
Vue学习 之 MacOS 安装 webpack webpack 简介 Webpack 是一个非常流行的前端构建工具,它可以将多个模块(包括CSS、JavaScript、图片等)打包成一个或多个静态资源文件(bundle),以便用于部署到生产环境。We…...
媒介易教你海外品牌推广:如何选择适合的新闻通稿发布平台?
在进行海外品牌推广时,选择合适的海外新闻通稿发布第三方平台是提高品牌曝光度和影响力的重要一环。这些平台可以帮助企业将新闻内容传播到全球范围内的媒体和受众,为品牌推广提供更广阔的机会。然而,选择合适的发布平台并不容易,…...
网络安全的学习路线是怎么样的?
最近看到网上有很多人在问诸如:“怎样成为网络安全工程师”等相关问题,这可能与近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,网络信息安全工程师随之成为炙手可热的职业。关于职业前景的详…...
QT学习07:五种按钮控件
文章首发于我的个人博客:欢迎大佬们来逛逛 文章目录 抽象类:QAbstractButtonQPushButtonQToolButtonQCommandLinkButtonQRadioButtonQCheckBoxQButtonGroup 抽象类:QAbstractButton 是所有按钮类的祖先。 QAbstractButton的信号:…...
chatgpt赋能python:Python如何截图运行结果
Python如何截图运行结果 介绍 Python是一种高级编程语言,非常流行。它具有许多有用的功能和库,使其成为许多开发人员的首选编程语言之一。但是,当您运行Python程序并需要与他人共享结果时,您可能需要截图运行结果。在本文中&…...
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能(C#)
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能(C#) Baumer工业相机Baumer工业相机BGAPISDK和JPEG图像压缩功能的技术背景Baumer工业相机通过BGAPISDK使用JPEG图像压缩功能1.引用合适的类文件2.使用BGAPISDK设置堡盟相机JPEG图像压缩模…...
Potree点云格式技术选型与实战指南:从需求到落地的完整路径
Potree点云格式技术选型与实战指南:从需求到落地的完整路径 【免费下载链接】potree WebGL point cloud viewer for large datasets 项目地址: https://gitcode.com/gh_mirrors/po/potree 在三维数据可视化领域,点云格式的选择直接影响项目的加载…...
英雄联盟智能助手:如何用League Toolkit提升你的游戏体验
英雄联盟智能助手:如何用League Toolkit提升你的游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在英雄联盟的…...
OFA模型微调实战:适配特定领域的小样本学习
OFA模型微调实战:适配特定领域的小样本学习 用最少的数据,让通用大模型听懂你的专业语言 1. 引言:当通用模型遇到专业领域 你有没有遇到过这样的情况:一个在通用场景下表现优秀的AI模型,一到你的专业领域就"水土…...
3步打造开源工具效率引擎:QtScrcpy自定义配置全指南
3步打造开源工具效率引擎:QtScrcpy自定义配置全指南 【免费下载链接】QtScrcpy Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcpy …...
开源解决方案:企业零代码条码生成的降本实践指南
开源解决方案:企业零代码条码生成的降本实践指南 【免费下载链接】librebarcode Libre Barcode: barcode fonts for various barcode standards. 项目地址: https://gitcode.com/gh_mirrors/li/librebarcode 一、条码管理的隐性成本陷阱:中小企业…...
基于spring和vue的企业原材料库存盘点食品厂管理系统
目录技术选型与架构设计核心功能模块划分数据库设计要点关键技术实现前端交互优化系统安全措施测试与部署方案扩展性设计项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术选型与架构设计 后端采用Spring Boot框架࿰…...
3分钟打造macOS级桌面体验:开源光标主题全攻略
3分钟打造macOS级桌面体验:开源光标主题全攻略 【免费下载链接】apple_cursor Free & Open source macOS Cursors. 项目地址: https://gitcode.com/gh_mirrors/ap/apple_cursor 你知道吗?每天在电脑前工作8小时,你的鼠标指针会出现…...
Qwen3.5-4B-Claude-Opus部署教程:CSDN镜像Web服务7860端口配置详解
Qwen3.5-4B-Claude-Opus部署教程:CSDN镜像Web服务7860端口配置详解 1. 模型概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个基于Qwen3.5-4B的推理蒸馏模型,特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。该版本以…...
VMware虚拟机中SenseVoice-Small开发环境快速搭建
VMware虚拟机中SenseVoice-Small开发环境快速搭建 1. 引言 语音识别技术正在快速发展,而SenseVoice-Small作为一个高效的多语言语音识别模型,为开发者提供了强大的工具。但在实际开发中,我们经常需要一个隔离的环境来测试和部署模型&#x…...
Windows音频捕获新方案:实现进程级精准录音的技术实践
Windows音频捕获新方案:实现进程级精准录音的技术实践 【免费下载链接】win-capture-audio An OBS plugin that allows capture of independant application audio streams on Windows, in a similar fashion to OBSs game capture and Discords application stream…...
