0%

DVWA通关指南-Weak Session IDs(弱会话ID)

总结

  • 对于本篇的攻击方式,感觉应该有问题,其实无论安全等级为何种,只要在谷歌打开dvwa抓包到cookie值后,然后再火狐浏览器打开url,修改为谷歌dvwa中cookie值后,都能绕过登录

  • 但是我搜索了其他博客,都是采用这样的方式来做的

概念

  • 用户访问服务器的时候,一般服务器都会分配一个身份证 session id 给用户,用于标识。

  • 获得session后,用户访问页面就不用登陆,只需要携带session就可以了。

如何利用

  • 由于SessonID是用户登陆后拥有的唯一认证凭证,因此黑客不需要再攻击登陆过程,就可以获取访问权限

  • 常见类型保存在cookie中,保存在url中(太不安全)

安全等级Low

用谷歌浏览器打开dvwa

image-20220211105704983

源码分析

服务器每次生成的session_id加1给客户端, setcookie("dvwaSession", $cookie_value);就是设置session的值

image-20220211110634046

开始攻击

image-20220211153530303

image-20220211164333448

抓包火狐发送的请求,发现security=impossible,并不是Low,据我观察好像在登录后才会读取security的值,不然默认就是impossible

image-20220211164609202

把cookie改过来:dvwaSession=4; security=low; PHPSESSID=e1r12c4ddu75vdmch70gkmr087,点击发送

image-20220211164918914

安全等级为Medium

源代码分析

采用time函数获取时间戳,作为cookie值(session)

image-20220211112526717

开始攻击

谷歌浏览器抓包后,得到 cookie:dvwaSession=1644566404; security=medium; PHPSESSID=e1r12c4ddu75vdmch70gkmr087

image-20220211165037092

注意dvaSession的值为时间戳,需要这里我们就需要去时间戳的网站进行转换:https://tool.lu/timestamp/

image-20220211160435148

火狐浏览器先退出登录的DVWA,输入http://XXXX1/DVWA-2.0.1/vulnerabilities/weak_id/

抓包修改cookie的值为:dvwaSession=1644566404; security=medium; PHPSESSID=e1r12c4ddu75vdmch70gkmr087

image-20220211165419235

  • 成功跳过登录验证,发现一个奇怪问题,就算是谷歌浏览器中设置了安全等级的难度,在火狐请求中直接修改cookie的值就能绕过?

安全等级High

源码分析

  • 首先使用!isset()函数对session变量进行检查,如果没有进行赋值。则设置为0,然后每一次都递增1。
  • 然后将session变量进行MD5加密后赋值为cookie_value变量。
  • 最终,将 cookie_value这个值发送给浏览器作为cookie。
  • 这里进行哈希加密处理,但初始的值始终是从0开始这种形式作为cookie

image-20220211165923234

开始攻击

谷歌浏览器,点击生成按钮

image-20220211170403199

抓包谷歌浏览器中的请求,发现请求参数其实和安全等级为medium一样的

image-20220211172637304

发给重发器观察下

image-20220211172716229

在重发去中发送请求,得到dvwaSession的值为:e4da3b7fbbce2345d7772b0674a318d5

image-20220211171042169

在线md5解密工具看看,这样的话就明白了它的逻辑,又服务器端提供dvwaSession在low的基础上加入了MD5加密

image-20220211171315505

  • 把构造的cookie复制:dvwaSession=e4da3b7fbbce2345d7772b0674a318d5; security=high; PHPSESSID=e1r12c4ddu75vdmch70gkmr087

  • 打开火狐浏览器你,输入url,抓包拦截,修改cookie的值,dvwaSession的值输入的是时间戳也能成功

  • 其实这里的攻击我并没有看出和安全等级为中的时候的区别

image-20220211172040526

点击发送后,成功绕过登录

image-20220211172118623

安全等级为impossible

分析源码

$cookie_value采用随机数+时间戳+固定字符串”Impossible”,再进行sha1运算,完全不能猜测到dvwaSession的值。

image-20220211173247187

参考这里