DVWA-9.1 Weak Session IDs(弱会话ID)-Low

Weak Session IDs

当用户登陆后,在服务器端就会创建一个会话(Session),接着访问页面的时候就不用登陆,只需要携带Session去访问。SessionID作为特定用户访问站点所需的唯一内容。如果能够计算或轻易猜到该SessionID,则攻击者将可以轻易获取访问权限,无需登录密码直接进入特定用户界面,进而进行其他操作。

Low Level

查看源码

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

可以看到,服务器端对sessionid的生成策略非常简单:

如果用户 SESSION中的 last_session_id 不存在就设为 0,存在就直接在原来的基础上加1。

这种是肯定不行的。太容易被人伪造,而且不能保证每个人的session是不一样的,容易造成冲突。

漏洞利用

点Generate,按F12查看headers信息,可以看到

请求头
Cookie: dvwaSession=2; security=low; PHPSESSID=crovkgvruus8df2bhe0nsgu3b3
响应头
Set-Cookie: dvwaSession=3

dvwaSession就是生成的需要测试的SessionID,PHPSESSID是在访问时服务器分配给我的,不是用来测试的。

在另一个浏览器上访问这个网址,抓包,添加Cookie如下

dvwaSession=2; security=low; PHPSESSID=crovkgvruus8df2bhe0nsgu3b3

成功访问。


参考:https://www.jianshu.com/p/98b12761fadd
原文地址:https://www.cnblogs.com/zhengna/p/12778915.html