dvwa靶场Weak Session IDs(弱会话IDs)全难度教程(附代码分析)

Weak Session(Security Level: low)

漏洞利用


第一次cookie

回包后变成2了

多回几次之后发现是递增关系
那么构造一下payload就可以进行登入

代码分析

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

这种生成方式容易被攻击者猜测或推测出合法的会话标识,从而增加会话劫持攻击的风险。

Weak Session(Security Level: medium)

漏洞利用

抓个包

回包看看

那串数字有点像时间戳

可以定时触发,或者在特定时间做会话劫持

代码分析

$html = "";

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

通过时间戳来确定账号可以定时攻击

Weak Session(Security Level: high)

漏洞利用

抓包看一下


发现长度固定,但是前后没有联系,估计是哈希了

嗯md5没错了

那么构造一下

代码分析

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

先检查上一个session,再递增之后再加密

Weak Session(Security Level: high)

代码分析

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

采用随机数+时间戳然后进行hash1计算(除非随机数生成器有问题能破解接下来的就直接费了)

posted on 2026-01-31 11:58  himobrine  阅读(0)  评论(0)    收藏  举报