DVWA-Session ID 介紹
-
- Burpsuite sequencer定序器介紹
- Session ID 介紹
-
- Low Weak Session IDs Source
- Medium Weak Session IDs Source
- High Weak Session IDs Source
- Impossible Weak Session IDs Source
- 啟示
老草稿,一直沒發,且發出來存到部落格裡面。已經好久沒接觸安全了,一直在補學資料結構和算法。
Burpsuite sequencer定序器介紹
BurpSuite系列(七)----Sequencer子產品(定序器)
burp sequencer 作為Burp Suite中一款用于檢測資料樣本随機性品質的工具,通常用于檢測通路令牌是否可預測、密碼重置令牌是否可預測等場景,通過Sequencer的資料樣本分析,能很好地降低這些關鍵資料被僞造的風險。
effective entropy : 有效熵
significance level : 顯著性水準
顯著性水準是估計總體參數落在某一區間内,可能犯錯誤的機率,用α表示。
顯著性水準是在進行假設檢驗時事先确定一個可允許的作為判斷界限的小機率标準。檢驗中,依據顯著性水準大小把機率劃分為二個區間,小于給定标準的機率區間稱為拒絕區間,大于這個标準則為接受區間。事件屬于接受區間,原假設成立而無顯著性差異;事件屬于拒絕區間,拒絕原假設而認為有顯著性差異。
Session ID 介紹
密碼與證書等認證手段,一般僅僅用于登入( Login)的過程。當登陸完成後,使用者通路網站的頁面,不可能每次浏覽器請求頁而時都再使用密碼認證。是以,當認證完成後。就需要替換一個對使用者透明的憑證。這個憑證就是 Session。
當使用者登陸完成後,在伺服器端就會建立一個新的會話( Session),會話中會儲存使用者的狀态和相關資訊。伺服器端維護所有線上使用者的 Session,此時的認證,隻需要知道是哪個使用者在浏覽目前的頁面即可。為了告訴伺服器應該使用哪一個 Session,浏覽器需要把目前使用者持有的 Sessionid告知伺服器。
Session ID一旦在生命周期内被竊取,就等同于賬戶失竊。同時由于 Sessionid是使用者登入之後オ持有的認證憑證,是以不需要進行密碼破解。
Low Weak Session IDs Source
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);
不安全.
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0zZq5kMV1GZwJlMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3gjMwQDMxUTMzATMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Medium Weak Session IDs Source
<?php
$html = "";
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$cookie_value = time();
setcookie("dvwaSession", $cookie_value);
}
?>
取time值作為cookie value,多次列舉也能找出規律
High Weak Session IDs Source
<?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);
}
?>
//雖從開始,先自增1,後采用md5加密,同時設定cookie存活時間為3600秒,較好的防禦
Impossible Weak Session IDs Source
<?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);
}
?>
此處采用sha-1加密,并且基于的是随機數與時間線性連接配接的集合,幾乎沒有破解的可能。并給cookie設定存活時間為6分鐘。
啟示
設定cookie值,要實作盡可能随機,要結合sha-1算法,mt_rand().time(),設定cookie存活時間。