dvwa9——Weak Session IDs
LOW
首先通过f12打开控制台,点击GENERATE发送请求,在网络里我们得到如下界面
看到响应cookie和请求cookie之间差1并且每次刷新页面(重新点击generate) 都会每个数增加1,所以说我们可以得出结论-----session ids每次增加1
再次generate, 用bp抓包,抓到这些, 红框内是我们要用到的关键信息
放包并退出登录, 然后去设置里面把cookie的数据清干净,然后退出重进火狐, 来到登录页面
在新标签页里打开hackbar, 输入我们刚才保存的url和cookie
按execute, 无密码登录成功
MEDIUM
查看源码:
发现用到了时间戳——(time()) ,也就是数字化时间,从1970年1月1日开始计时,每过1秒加1
把时间戳加300秒,其余与low一样
登录成功
HIGH
查看源码:
发现cookie被md5加密了
还是先bp抓包,抓到这些
send to repeater,继续send ,在pretty里找到
在这个里面解md5的码md5解密 MD5在线解密 破解md5
多试几组就会发现解密之后和low一样是公差为1递增的数字
所以直接加密构造payload就行,其余步骤跟low一样
IMPOSSIBLE
分析源码:
优化地方:
1:把md5改成sha1哈希处理
sha1哈希:
无论输入什么,输出都会转为40位十六进制数,比如
"hello" → "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
"hello world" → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
并且从哈希值无法反推原始数据
2: 加入mt_rand():比普通的rand()生成的伪随机数更安全
3:加入时间戳time(),time()+3600指明一小时有效期
4:请求方法变成post,因为难以构造post攻击
5:true:禁止javascript访问