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);
}
?>
cookie 值应该非常明显地可预测,也就是说,你第一次获取sessionid时,cokkie值为1,之后每获取一次,cookie会加一。
1,点击Generate,抓包,并且复制Cookie:后面的内容。
2,打开一个新的dvwa登录页面http://localhost/dvwa/login.php
3,点击F12,打开HackBar,按下图分别输入弱会话网址,cookie
4,点击Execute,就可以绕过登录直接进入“弱会话”界面了。
或许是因为在进入dvwa时已经登录过了,所以在medium,high,impossible抓包时Intercept界面没有dvwaSession
MEDIUM
<?php
$html = "";
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$cookie_value = time();
setcookie("dvwaSession", $cookie_value);
}
?>
设置了$cookie_value = time()
这里是用到了时间戳
Set-Cookie: dvwaSession=1676183903
我们在网上转义就可以知道具体时间了,
之后我们可以通过伪造登录时间来获得cookie来绕过登录
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);
}
?>
这里进行了MD5加密,同样可以在一些网址进行解密,多次抓包查找规律就可以伪造cookie了
IMPOSSIBLE
在此级别,cookie 值【$cookie_value = sha1(mt_rand() . time() . "Impossible");】
不可预测,但请随时尝试。
除了额外的标志外,cookie 还与域和挑战路径相关联。