一.Low篇
1.登录DVWA;
(账号:admin 密码:password)
2.DVWA Security ---->Low模式;
3.打开Weak Session IDs开始测试;
打开BurpSuite进行抓包;
4.查看Cookie值;
Cookie: dvwaSession=1; PHPSESSID=k02mp4qonsn8410uuth48al1p1; security=low
可以发现 dvwaSession=1,由此猜测下一次会话时 dvwaSession=2
将该包的Cookie复制保存下来,并清除掉浏览器的历史记录;
重新进入DVWA可以发现需要重新登录
进入之前复制的URL并进行BurpSuite;
更改dvwaSession=2
Cookie: dvwaSession=2; PHPSESSID=3hvd3p1ojan42mu9icld4ubk76; security=low
Forward成功绕过
二. Medium篇;
1.进入Medium模式;
2.打开Weak Session IDs开始测试;
打开BurpSuite进行抓包
点击Generate,抓包,Forward,再抓包,再Forward,得到Cookie值;
Cookie: dvwaSession=1717407750; PHPSESSID=f4i2qd04l88i4otum3vjvnku30; security=medium
可以发现,在Medium防护等级下dvwaSession值为时间戳,可以使用在线工具进行时间戳和时间的转换,也可以编写Python脚本进行实现;
这里就借鉴大佬的代码;
import time
#时间转时间戳
a = "2022-01-14 11:45:44"
timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S" )
timeStamp = int (time.mktime(timeArray))
print(timeStamp)
#时间戳转时间
timeStamp =1642131944
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
print(otherStyleTime)
更改timeStamp值(之前抓包的dvwaSession值)
使用python脚本运行(可以在终端中运行)
python /../change.py
得到时间并在代码中更改时间戳,此构造小于当前时间的时间戳进行绕过
再次使用python脚本运行(可以在终端中运行),得到新的时间戳,并进行修改;
清除掉浏览器的历史记录;
打开Burpsuite,进入之前复制的URL,并抓包;
Forward成功绕过;
三.High篇;
和之前的操作一样,点击Generate,抓包,Forward,再抓包,再Forward,得到Cookie值;
可以发现,High防护等级下dvwaSession值为整数的MD5加密值,即第一次为MD5(1),第二次为MD5(2),将所猜测的整数值经过MD5加密即可;
可以使用在线工具进行加密,也可以自己编写Python脚本(这里引用大佬的代码)
import hashlib
#加密内容为1
str_md5 = hashlib.md5(b'1').hexdigest()
print('MD5加密后为 :' + str_md5)
攻击过程与Low防护等级时一致;