首页 > 其他分享 >DVWA-Weak Session IDs

DVWA-Weak Session IDs

时间:2024-05-30 17:57:37浏览次数:20  
标签:SESSION last Session Weak IDs value session cookie id

用户登录之后,服务端会创建一个session,里面存储用户的状态和相关信息。而为了缓和客户端的存储压力,客户端只存储一个session_id,一般session_id放在cookie中。
如果session_id被劫持,黑客可以使用其登录直接登录到目标账户。

题目有点没看懂
拿High Level举例,只拿到PHPSESSID就可以绕过登录,读取SESSION数组的last_session_id_high,并使其++。
在这里插入图片描述
先分析下session_id的生成机制。

Low

观察后端代码,如果检测到session_id没设置的话新建session_id,如果session_id设置了则对session_id++.

<?php

$html = "";

if ($_SERVER['REQUEST_METHOD'] == "POST") {
	if (!isset ($_SESSION['last_session_id'])) {
		$_SESSION['last_session_id'] = 0;
	}
	$_SESSION['last_session_id']++;
	$cookie_value = $_SESSION['last_session_id'];
	setcookie("dvwaSession", $cookie_value);
}
?>

我们burp抓包后,拿到cookie,之后把浏览器cookie删掉。
打开新的界面用hackbar填上拿到的cookie,直接访问weak_id路径,发现绕过了登陆界面。
在这里插入图片描述

Medium

观察后端代码,session用的是时间戳,也没有任何加密,很容易伪造。

<?php

$html = "";

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

High

观察后端代码,session_id的生成在Low的基础上加了md5,并且设置了过期时间,有效域名等。
这里涉及到了session_id的路径/vulnerabilities/weak_id/,自己注意下自己的网站路径和源码里是否一样,如果不同的话,浏览器访问自的路径的话拿不到session_id。

<?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);
}

?>

Impossible

观察后端代码,生成cookie的方式是使用sha1加密,结合随机数、当前时间和一个固定字符串。

<?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);
}
?>

标签:SESSION,last,Session,Weak,IDs,value,session,cookie,id
From: https://blog.csdn.net/weixin_45436292/article/details/139299095

相关文章

  • 6.基于传统的Cookie和Session实现用户的认证授权
    6.1概述RBAC(Role-BasedAccessControl,基于角色的访问控制)权限按钮控制是一种细粒度的权限管理方式,它允许系统管理员根据用户的角色来精确控制用户界面中功能按钮的可见性和可用性。在RBAC模型中,权限不仅限于访问某个页面或模块,还可以细化到页面上每个操作按钮的权限。......
  • ClickHouse 留存、路径、漏斗、session 位图 roaringbitmap 位图优化
    Clickhouse在大数据分析平台-留存分析上的应用_大数据_腾讯云大数据_InfoQ写作社区https://xie.infoq.cn/article/c7af40e5ba5f5f5beaccde990ClickHouse实战留存、路径、漏斗、session-腾讯云开发者社区-腾讯云https://cloud.tencent.com/developer/article/1953792导语 | ......
  • 请描述一下 cookies sessionStorage和localstorage区别
    Cookies、sessionStorage和localStorage都是Web浏览器提供的客户端存储机制,但它们之间有一些重要的区别:存储容量:Cookies最大容量约为4KB。sessionStorage和localStorage的容量都约为5MB。有效期:Cookies有明确的过期时间,可以设置为在浏览......
  • Cookie和Session使用说明
    会话技术产生的原因浏览器和服务器之间使用的是HTTP请求来进行数据传输HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求HTTP协议设计成无状态的目的是让每次请求之间相互独立,互不影响请求与请求之间独立后,就无法实现多次请求之间的数据共享Coo......
  • session
    什么是session    Session是计算机科学中的一个概念,它用来追踪与某个用户的一系列交互。在网站开发中,session通常用于存储和管理用户在网站上的登录状态和其他相关信息。当用户登录网站时,系统会为该用户创建一个session,生成一个唯一的sessionID,并将该ID存储在用户的浏......
  • 在AndroidStudio创建虚拟手机DUB-AI20
    1.DUB-AI20介绍        DUB-AL20是华为畅享9全网通机型。         华为畅享9采用基于Android8.1定制的EMUI8.2系统,最大的亮点是配置了1300万AI双摄、4000mAh大电池以及AI人脸识别功能,支持熄屏快拍、笑脸抓拍、声控拍照、手势拍照等特色的拍照功能,支持移......
  • SpringBoot设置Session失效时间
    springboot的yml文件中设置session的过期时间#Session超时时间设置,单位是秒,默认是30分钟servlet:session:timeout:3600s当过期时间是大于1分钟的时候是没有什么问题的,但是如果设置过期时间小于1分钟,就会失效。servlet:session:timeout:10......
  • sqids hashids 的升级版
    sqids是hashids的升级版,提供了不少新功能,但是与hashids是不兼容的包含的特性生成短id方便编码以及解码自动生成id支持通过自定义大阮的字母生成id每个版本可以生成唯一的id支持blocklist使用场景主键编码保存数据库查找临时登陆token不适合的场景敏感数据用......
  • token、cookie、session的区别
    token是验证用户身份的令牌,通常是用于接口的身份验证,一般获取之后放在请求头中cookie和session的区别:cookie是服务器发送到客户端然后存储在客户端的,可以用来保持用户的登录信息session是服务器为了方便存储用户会话信息产生的,客户端访问服务器时,服务器给每个访问对象创建一个......
  • HTML 15 - CSS IDs
     HTML"id"isanattributeusedtouniquelyidentifyanelementwithinawebpage.ItservesasalabelforthatelementandenablesJavaScriptandCSStotargetitspecifically.Thisidentificationhelpsinapplyingcustomstyles,makinginter......