Weak Session IDs (弱會話)

Weak Session IDs (弱會話)

當用戶登錄后,在服務器就會創建一個會話(session),叫做會話控制,接著訪問頁面的時候就不用登錄,只需要攜帶Sesion去訪問。

    sessionID作為特定用戶訪問站點所需要的唯一內容。如果能夠計算或輕易猜到該sessionID,則攻擊者將可以輕易獲取訪問權限,無需錄直接進入特定用戶界面,進而進行其他操作。用戶訪問服務器的時候,在服務器端會創建一個新的會話(Session),會話中會保存用戶的狀態和相關信息,用于標識用戶。服務器端維護所有在線用戶的Session,此時的認證,只需要知道是哪個用戶在瀏覽當前的頁面即可。為了告訴服務器應該使用哪一個Session,瀏覽器需要把當前用戶持有的SessionID告知服務器。用戶拿到session id就會加密后保存到 cookies 上,之后只要cookies隨著http請求發送服務器,服務器就知道你是誰了。SessionID一旦在生命周期內被竊取,就等同于賬戶失竊。

Session利用的實質 :

    由于SessionID是用戶登錄之后才持有的唯一認證憑證,因此黑客不需要再攻擊登陸過程(比如密碼),就可以輕易獲取訪問權限,無需登錄密碼直接進入特定用戶界面, 進而查找其他漏洞如XSS、文件上傳等等。

Session劫持 :

    通過竊取用戶SessionID,使用該SessionID登錄進目標賬戶的攻擊方法,此時攻擊者實際上是使用了目標賬戶的有效Session。如果SessionID是保存在Cookie中的,則這種攻擊可以稱為Cookie劫持。SessionID還可以保存在URL中,作為一個請求的一個參數,但是這種方式的安全性難以經受考驗。

LOW級別

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

setcookie() 函數向客戶端發送一個 HTTP cookie。如果用戶 SESSION 中的 last_session_id 不存在就設為 0,生成 cookie 時就在 cookies 上 dvwaSessionId + 1。這種生成方式過分簡單了,而且非常容易被偽造。

點擊Generate(生成會話),使用bp進行抓包
在這里插入圖片描述

在這里插入圖片描述

在第一次發包中,并沒有看到dvwaSession值得傳遞,點擊Forward放包再次進行抓包

在這里插入圖片描述

抓取到cookie值中dvwaSession1,這是第一次,復制cookie值和Web Session IDs頁面的url
然后打開firefox,打開HackBar,將url粘貼到地址欄,將復制的cookie粘貼到cookie值中

可以試著修改dvwaSession的值

在這里插入圖片描述

點擊提交后可以看到,不需要輸入密碼直接登錄成功

Medium級別

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

將獲取當前的時間戳作為了會話的值

image-20230731210344258

時間戳轉換工具

在這里插入圖片描述

image-20230731210503797

在bp上抓包,復制Cookie信息

在這里插入圖片描述

在hackbar插件上發送請求

構造一下登錄的payload:

dvwaSession=1690808572; security=medium; PHPSESSID=esghfd6iq36q5em6hbhl5iim5v

請求地址:

http://192.168.80.145/dvwa/vulnerabilities/weak_id/

在這里插入圖片描述

High級別

<?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);
}?> 
setcookie(name,value,expire,path,domain,secure,httponly)參數 	             描述
name 	    必需。規定cookie的名稱。
value 	    必需。規定cookie的值。
expire   	可選。規定cookie的有效期。
path 	    可選。規定cookie的服務器路徑。
domain 	    可選。規定cookie的域名。
secure 	    可選。規定是否通過安全的HTTPS連接來傳輸cookie。
httponly 	可選。規定是否Cookie僅可通過HTTP協議訪問。

抓包發現,使用了md5加密了每次last_session_id_high的值,但是依然無法改變每次加一的規律
所以只需將數字使用md5加密,循環的方式跑腳本,依然可以破解

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40289.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入理解 Flutter 圖片加載原理

作者&#xff1a;京東零售 徐宏偉 來源&#xff1a;京東云開發者社區 前言 隨著Flutter穩定版本逐步迭代更新&#xff0c;京東APP內部的Flutter業務也日益增多&#xff0c;Flutter開發為我們提供了高效的開發環境、優秀的跨平臺適配、豐富的功能組件及動畫、接近原生的交互體驗…

用對角線去遍歷矩陣

聲明 該系列文章僅僅展示個人的解題思路和分析過程&#xff0c;并非一定是優質題解&#xff0c;重要的是通過分析和解決問題能讓我們逐漸熟練和成長&#xff0c;從新手到大佬離不開一個磨練的過程&#xff0c;加油&#xff01; 原題鏈接 用對角線遍歷矩陣https://leetcode.c…

wsl2(debian)安裝python的不同版本例如3.8

要在Debian上安裝 Python 3.8&#xff0c;可以按照以下步驟操作&#xff1a; 1.確保你的 Debian 系統已經更新到最新版本&#xff0c;可以使用以下命令更新&#xff1a; sudo apt update sudo apt upgrade2.安裝 Python 3.8 的依賴項&#xff0c;以及構建 Python 時需要的工具…

django中實現事務的幾種方式

1.實現事務的三種方式 1.1 全局開啟事務---> 全局開啟事務&#xff0c;綁定的是http請求響應整個過程 DATABASES {default: {#全局開啟事務&#xff0c;綁定的是http請求響應整個過程ATOMIC_REQUESTS: True, }} from django.db import transaction# 局部禁用事務 transac…

數據結構——棧(C語言)

需求&#xff1a;無 棧的概念&#xff1a; 棧&#xff1a;一種特殊的線性表&#xff0c;其只允許在固定的一端進行插入和刪除元素操作。進行數據插入和刪除操作的一端稱為棧頂&#xff0c;另一端為棧底。棧中的數據元素遵守后進先出&#xff08;LIFO&#xff09;原則。壓棧&…

GPIO 配置 和 PINCTRL有啥區別

GPIO&#xff08;通用輸入/輸出&#xff09;和 PINCTRL&#xff08;引腳控制器&#xff09;是在嵌入式系統中用于管理和控制硬件引腳的關鍵概念。它們在硬件層面上起著不同的作用。 GPIO配置&#xff1a; GPIO 是一種通用的硬件接口&#xff0c;用于控制和讀取數字信號。每個 …

自動駕駛——駛向未來的革命性技術

自動駕駛——駛向未來的革命性技術 自動駕駛的組件自動駕駛的優勢自動駕駛的應用自動駕駛的未來中國的自動駕駛 自動駕駛是一種技術&#xff0c;它允許車輛在沒有人類駕駛員的情況下自主地進行行駛。它利用各種傳感器、計算機視覺、人工智能和機器學習算法來感知和理解周圍環境…

.net連接mysql,提示找不到請求的 .Net Framework Data Provider。可能沒有安裝

開發完成的.net程序需要連接mysql數據庫&#xff0c;在個人電腦上運行沒問題&#xff0c;別人運行時提示“提示找不到請求的 .Net Framework Data Provider。可能沒有安裝”。經過查詢&#xff0c;安裝Connector/NET 8.1.0&#xff0c;下載地址如下所示&#xff1a; https://d…

Linux touch 命令指南大全

1. 概述 在本教程中,我們將學習touch命令。簡而言之,這個命令允許我們更新文件或目錄的最后修改時間和最后訪問時間。 因此,我們將重點關注如何使用該命令及其各種選項。 請注意,我們使用 Bash 測試了此處顯示的所有命令;但是,它們應該與任何兼容 POSIX 的 shell 一起使…

使用騰訊云輕量服務器Matomo應用模板建網站流量統計系統

騰訊云百科分享使用騰訊云輕量應用服務器Matomo應用模板搭建網站流量統計系統&#xff0c;Matomo 是一款開源的網站數據統計軟件&#xff0c;可以用于跟蹤、分析您的網站的流量&#xff0c;同時充分保障數據安全性、隱私性。該鏡像基于 CentOS 7.6 64位操作系統&#xff0c;已預…

postgresql字段被截斷問題

前言 最近遇到一個問題就是字段名過長&#xff0c;會被pg給截斷&#xff0c;導致原始字段和下游用的的字段不一樣&#xff0c;就會報錯。當然&#xff0c;小伙伴可能會說為什么會用那么長的字段名&#xff0c;每個應用程序里面處理不一樣&#xff0c;我們數據字段每次被使用就…

06-加密算法

加密算法 一、前言知識1、加密解密2、MD5&#xff08;最常見&#xff09;3、SHA4、進制5、時間戳6、URL編碼7、base64編碼8、unescape編碼9、AES加密10、DES&#xff08;類似于base64&#xff09; 二、常見加密形式算法解析三、演示案例1、某 CTF 比賽題目解析2、某 CMS 密碼加…

爆肝整理,Python自動化測試-Pytest參數化實戰封裝,一篇打通...

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 參數化&#xff1…

uniapp案例30余種實戰項目

uniapp案例30余種實戰項目 mpvue框架仿滴滴出行didi-masteruni-app自定義導航欄title-customvue-mpvue-ChatRobot聊天機器人vue-mpvue-ChatRobot-master一款播課類小程序, 基于 mpvue 構建mp-podcast-mpvue-mastermpVue高仿美團小程序教程mpvue-meituan-masteruni-app 二維碼生…

【RS485 - 為什么要接收端計算時間偏移量】

我以前一直以為計算機等的信號傳輸速率都是非常快的&#xff0c;不用計算時間差。 然而在實際應用中發現信息是需要傳輸時間的&#xff0c;而這些時間somehow是可以計算的。 前提信息 波特率 9600&#xff1b; 控制器和執行器通過RS485通信&#xff1b; 控制器發出同步的命令…

spring框架,以及和spring框架相關的Java面試題和spring ioc的注入方式

目錄 一.spring來源&#xff0c;以及介紹 1.spring誕生的背景 2.spring框架 介紹 3.spring框架在使用中的優點以及不足 3.1優點 3.2不足 3.3總結 4.為什么要使用spring 二.將spring框架部署在IDEA中 1.替換pom.xml 2.構建spring所需要的xml文件 三.spring的三種注入…

網絡通信原理IP頭部格式(第四十二課)

字段作用解析:1)版本: 指的IP地址的版本 (IPv4 或 IPV6)2)首部長度: 次數據包的首部長度一共是多少,沒有加可選項3)優先級與服務類型:表示****數據包是否需要優選傳遞4)總長度: 表示的是整個數據包的大小,也就****是首部+數據5)標識符、標志、段偏移量:的作用將拆開的…

無涯教程-Perl - syswrite函數

描述 此函數嘗試將SCALAR中的LENGTH個字節寫入與FILEHANDLE相關的文件。如果指定了OFFSET,則從提供的SCALAR中的OFFSET字節中讀取信息。該函數使用C /操作系統的write()函數,該函數繞過普通緩沖。 語法 以下是此函數的簡單語法- syswrite FILEHANDLE, SCALAR, LENGTH, OFFS…

draw.io導出矢量圖到word報錯text is not svg - cannot display

先參考https://blog.csdn.net/a625750076/article/details/126384831 如果不行&#xff0c;可能是轉存的問題 解決方法&#xff1a;直接在draw.io上操作 第一步 第二步 然后再word中粘貼&#xff0c;依舊是矢量圖哦&#xff01;

Ajax入門+aixos+HTTP協議

一.Ajax入門 概念:AJAX是瀏覽器與服務器進行數據通信的技術 axios使用: 引入axios.js使用axios函數:傳入配置對象,再用.then回調函數接受結果,并做后續處理 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>01.axios使用…