DVWA-Session ID 介绍
老草稿,一直没发,且发出来存到博客里面。已经好久没接触安全了,一直在补学数据结构和算法。
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);
不安全.
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存活时间。