当前位置: 首页 > news >正文

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 通常是在登录后以特定用户身份访问站点所需的唯一内容&#xff0c;如果能够计算或轻松猜测该会话 ID&#xff0c;则攻击者将有一种简单的方法来访问用户帐户&#xff0c;而无需暴力破解密码或查找其他漏洞&#xff0c;例如跨站点脚本。 目的 该模块使用四种…...

Bug序列——容器内给/root目录777权限后无法使用ssh免密登录

Linux——创建容器并将本地调试完全的前后端分离项目打包上传docker运行_北岭山脚鼠鼠的博客-CSDN博客 接着上一篇文章结尾出现403错误时通过赋予/root目录以777权限解决403错误。 chmod 777 /root 现在又出现新的问题&#xff0c;远程ssh无法免密登录了&#xff0c;即使通过…...

华为OD机试真题 JavaScript 实现【服务中心选址】【2023Q1 100分 】

一、题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置&#xff0c;并希望能够以此为依据为新的服务中心选址&#xff0c;使服务中心到所有区域的距离的总和最小。 给你一个数组 positions&#xff0c;其中 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

接前一篇文章&#xff1a;Linux内核中内存管理相关配置项的详细解析7 十一、Enable KSM for page merging 对应配置变量为&#xff1a;CONFIG_KSM。 此项只有选中和不选中两种状态&#xff0c;默认为选中。 内核源码详细解释为&#xff1a; Enable Kernel Samepage Merging:…...

深入浅出Vite:Vite打包与拆分

一、背景 在生产环境下,为了提高页面加载性能,构建工具一般将项目的代码打包(bundle)到一起,这样上线之后只需要请求少量的 JS 文件,大大减少 HTTP 请求。当然,Vite 也不例外,默认情况下 Vite 利用底层打包引擎 Rollup 来完成项目的模块打包。 某种意义上来说,对线上环…...

大数据ETL工具Kettle

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言最近公司在搞大数据数字化&#xff0c;有MES,CIM,WorkFlow等等N多的系统&#xff0c;不同的数据源DB&#xff0c;需要将这些不同的数据源DB里的数据进行整治统一…...

大学物理(上)-期末知识点结合习题复习(4)——质点运动学-动能定理 力做功 保守力与非保守力 势能 机械能守恒定律 完全弹性碰撞

目录 1.力做功 恒力作用下的功 变力的功 2.动能定理 3.保守力与非保守力 4.势能 引力的功与弹力的功 引力势能与弹性势能 5.保守力做功与势能的关系 6.机械能守恒定律 7.完全弹性碰撞 题1 题目描述 题解 题2 题目描述 题解 1.力做功 物体在力作用下移动做功…...

这两个小众的资源搜索工具其实很好用

01 小不点搜索是一个中国网络技术公司开发的网盘搜索引擎&#xff0c;该网站通过与多个主流网盘进行整合&#xff0c;为用户提供一种快速查找和下载文件的方式。小不点搜索因其高效性、便利性和实用性受到了广大用户的喜爱。 在技术实现上&#xff0c;小不点搜索拥有先进的搜…...

Java设计模式(六)— 单例模式1

系列文章目录 单例模式介绍 单例模式之静态常量饿汉式 单例模式之静态代码饿汉式 单例模式之线程不安全懒汉式 文章目录 系列文章目录前言一、单例设计模式介绍二、单例设计模式八种方式三、单例—静态常量饿汉式1.静态常量饿汉式介绍2.静态常量饿汉式案例3.静态常量饿汉式优缺…...

iOS -- isa指针

isa指针&#xff1a;isa指针是一个指向对象所属类或元类的指针。它决定了对象可以调用的方法和属性。isa指针在对象的结构中存在&#xff0c;并且在运行时会被自动设置。isa 指针&#xff0c;表示这个对象是一个什么类。而 Class 类型&#xff0c; 也就是 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

●英文名&#xff1a;Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH ●外观以及性质&#xff1a; Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH中通过对蛋白进行复杂蛋白糖基化修饰&#xff0c;细胞产生了极大丰度的蛋白质类型&#xff1b;通过对各类糖基…...

网络安全(黑客)怎么自学?

最近看到很多问题&#xff0c;都是小白想要转行网络安全行业咨询学习路线和学习资料的&#xff0c;作为一个培训机构&#xff0c;学习路线和免费学习资料肯定是很多的。机构里面的不是顶级的黑阔大佬就是正在学习的同学&#xff0c;也用不上这些内容&#xff0c;每天都在某云盘…...

Vue学习 之 MacOS 安装 webpack

Vue学习 之 MacOS 安装 webpack webpack 简介 Webpack 是一个非常流行的前端构建工具&#xff0c;它可以将多个模块&#xff08;包括CSS、JavaScript、图片等&#xff09;打包成一个或多个静态资源文件&#xff08;bundle&#xff09;&#xff0c;以便用于部署到生产环境。We…...

媒介易教你海外品牌推广:如何选择适合的新闻通稿发布平台?

在进行海外品牌推广时&#xff0c;选择合适的海外新闻通稿发布第三方平台是提高品牌曝光度和影响力的重要一环。这些平台可以帮助企业将新闻内容传播到全球范围内的媒体和受众&#xff0c;为品牌推广提供更广阔的机会。然而&#xff0c;选择合适的发布平台并不容易&#xff0c;…...

网络安全的学习路线是怎么样的?

最近看到网上有很多人在问诸如&#xff1a;“怎样成为网络安全工程师”等相关问题&#xff0c;这可能与近几年网络安全事件频发&#xff0c;国家对于互联网信息安全和互联网舆情的重视程度不断提升有关&#xff0c;网络信息安全工程师随之成为炙手可热的职业。关于职业前景的详…...

QT学习07:五种按钮控件

文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 文章目录 抽象类&#xff1a;QAbstractButtonQPushButtonQToolButtonQCommandLinkButtonQRadioButtonQCheckBoxQButtonGroup 抽象类&#xff1a;QAbstractButton 是所有按钮类的祖先。 QAbstractButton的信号&#xff1a…...

chatgpt赋能python:Python如何截图运行结果

Python如何截图运行结果 介绍 Python是一种高级编程语言&#xff0c;非常流行。它具有许多有用的功能和库&#xff0c;使其成为许多开发人员的首选编程语言之一。但是&#xff0c;当您运行Python程序并需要与他人共享结果时&#xff0c;您可能需要截图运行结果。在本文中&…...

Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机BGAPISDK和JPEG图像压缩功能的技术背景Baumer工业相机通过BGAPISDK使用JPEG图像压缩功能1.引用合适的类文件2.使用BGAPISDK设置堡盟相机JPEG图像压缩模…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...