High Level
查看源码
<?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); } ?>
这里将dvwaSession的值进行了md5计算,并且还设置了dvwaSession的有效期进一步增加安全性,但不足的是本级与低级代码一样,都是通过0开始累加的,若有经验的人在多次尝试后,很容易看出来其中的规律。
漏洞利用
点击Generate,按F12查看headers信息,可以看到
响应头
Set-Cookie: dvwaSession=c81e728d9d4c2f636f067f89cc14862c; expires=Sun, 26-Apr-2020 06:55:00 GMT; Max-Age=3600; path=/vulnerabilities/weak_id/; domain=127.0.0.1
32位字符。由0-9和a-f组成猜想应该是MD5,拿到网站去解密,为2,再测试几次,发现就是如low一样从0开始每次加1,然后经过MD5加密,作为SessionID。依旧在另一个浏览器上访问这个网址,抓包,添加上Cookie。成功访问。