DVWA 之 Weak Session IDs(弱会话)

Weak Session IDs(弱会话),用户访问服务器的时候,一般服务器都会分配一个身份证 session id 给用户,用于标识。 用户拿到 session id 后就会保存到 cookies 上,之后只要拿着 cookies 再访问服务器,服务器就知道你是谁了。 但是 session id 过于简单就会容易被人伪造。

Session利用的实质

由于SessionID是用户登录之后才持有的唯一认证凭证,因此黑客不需要再攻击登陆过程(比如密码),就可以轻易获取访问权限,无需登录密码直接进入特定用户界面, 进而查找其他漏洞如XSS、文件上传等等。

Session劫持 : 就是一种通过窃取用户SessionID,使用该SessionID登录进目标账户的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。如果SessionID是保存在Cookie中的,则这种攻击可以称为Cookie劫持。SessionID还可以保存在URL中,作为一个请求的一个参数,但是这种方式的安全性难以经受考验。

所以,本关的关键就是我们修改了cookie的值,实现免密码登录。 

1、级别: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);
}
?>

 代码分析,last_session_id如果不存在则默认设为0,反之则+1,设置为dvwaSession

利用bp抓包

 构造payload:dvwaSession=1; PHPSESSID=n9qd71ocqkjle1rdtbcs5f5be4; security=low

用hackbar在dvwa登录页面提交cookie,就可以成功免密登录了 

注意要先清除网站的cookie

再重新打开一个新的空白页访问登陆页面

url设置为:http://127.0.0.1/bachang/DVWA-master/vulnerabilities/weak_id/

cookie:dvwaSession=1; PHPSESSID=n9qd71ocqkjle1rdtbcs5f5be4; security=low

2、级别:Medium


<?php

$html = "";

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

 dvwaSession的值是通过时间戳来形成的,可以使用在线工具生成:时间戳(Unix timestamp)转换工具 - 在线工具

Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

 在cookie中添加:dvwaSession=1664951008

方法同low级别一样

成功免密登录 

 

3、级别: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);
}

?>

这里将cookie的值进行了md5计算,并且还设置了期限之类进一步增加,但不足的是进行md5散列的值是0的累加,很容易被猜出规律然后绕过

 dvwaSession=a87ff679a2f3e71d9181a67b7542122c,打开md5在线解密破解,md5解密加密解密

 再重新发送个包,得到dvwaSession=e4da3b7fbbce2345d7772b0674a318d5,解码

 可以看出是递增的,其他步骤和low级别类似,这里不再赘述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RexHarrr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值