参考文章:一步一步学习DVWA渗透测试(Weak Session IDs)-第十一次课
使用工具:Hackbar破解 | 在线时间戳查询 | MD5在线解密破解
原理
用户访问服务器的时候,一般服务器都会随机分配一个身份证 session id 给用户,用于标识。用户拿到 session id 后就会保存到 cookies 中,之后只要拿着 cookies 再访问服务器,服务器就知道你是谁了
但是 session id 过于简单就会容易被人伪造。根本都不需要知道用户的密码就能登录账号
有人可能会说,上面讲的那个多,举个例子看看,好,那就举个例子(PS:无中生友,嘿嘿)
记得群里有个表哥,挖某专属,思路就是通过后台cms暴露,然后审计,发现后台cookie是有规律的,时间戳
直接写脚本通过爆破出某段时间内登录的Cookie,直接伪造登录,后台上传点getshell,2500到手!!!
分析
Low
先看代码,进行审计,找出可伪造原因
这里直接,访问一次,seession就加1,直接就可以伪造了
还有就是如果session中的last_session_id没有值,默认设置为0,。。。
验证一下是不是如上面所说,进行抓包并分析,验证成功!!
然后使用Firefox的hackbar,模拟session登录,先进入登录界面(使用工具放在第二行了)
使用hackbar的cookie功能,进行模拟,登录,成功!!
注:输入的URL到weak_id模块的,因为这个session是那里获取到的
Medium
老样子,先看代码,进行审计,找出可伪造原因
这里使用了时间戳,也是可以伪造的(使用工具放在第二行了)
验证一下是不是如上面所说,进行抓包并分析,验证成功!!
跟上面一样,hackbar直接伪造cookie,进行登录
High
老样子,先看代码,进行审计,找出可伪造原因
。。。,跟Low级别一样,只是用MD5加密了而已
但是,这里我抓包的dvwaSession和源代码中看到的不一样,所以就猜解不了了
因为dvwaSession是我们登录后台时显示的,而源代码中的是登录后台后显示的,没有登录后台,就不知道加密方法
**
估计是dvwa不给看的代码中,对这里进行了限制(很像PDO技术的分开独立操作)
当然,如果是有经验的人,有可能也会猜到是md5加密,进行破解
抓包
源代码
Impossible
老样子,先看代码,进行审计,找出不可伪造原因
脚本采用了随机数+时间戳+固定字符串”Impossible”,再进行sha1运算,极大的降低了破解范围,但是也是有可能爆破的,只要有耐心