webgoat——Session Management Flaws会话管理缺陷

Session Management Flaws

会话管理:

因为HTTP是没有状态的,之前认证缺陷的也会涉及到类似的知识点,由于每次请求完成后链接就会断开,当客户端再次发起请求的时候,服务端就识别不了客户端的状态,而会话管理就是解决这一问题的,其中一种会话管理是通过服务器端session的管理,在用户登录认证成功之后,服务器生成sessionid通过cookie返回给用户所在的浏览器从而使每个用户都会有一个唯一标识sessionID(详细问度娘诺)

在这里插入图片描述
然后还在网上找了一个会话管理的思维导图,今天这部分知识一丁半点:
具体文章戳 [Web安全之攻击会话管理机制]

在这里插入图片描述

Hijack a Session会话劫持

开发自己的会话ID的应用程序开发人员经常忘记结合安全性所必需的复杂性和随机性。 如果用户特定的会话ID不复杂且随机,则该应用程序很容易受到基于会话的暴力攻击。

总体目标:
尝试访问属于其他人的经过身份验证的会话。

前面描述不少,但是简单来说,窃取用户会话标识并访问其会话。

在这里插入图片描述
抓包发现cookie下有个WEAKID的参数,即是本次的会话标识,既然要访问其他人但是又不知道用户和密码肯定是要根据这个会话ID来进行识别了,这里是

WEAKID=17346-1585019744376

这里需要做的事就是能否找到每次服务器发过来的WEAKID的规律,从而间接窃取了用户的会话标识,将每次抓包中的WEAKID删除再重新发包,重复几次会发现:

WEAKID=17347-1585024090741
WEAKID=17348-1585024185916
WEAKID=17349-1585024216536

经过三次抓包放包发现WEAKID前半部分每次都会增加1,后半部分也是递增规律,显然是弱生成的ID,没有进行什么加密(一般会话标识都会加密保存到cookie中),然后我们通过 Sequencer这个模块自动化发包,我们提交一个数据,删掉cookie里的WEAKID信息,发送到sequencer模块:

在这里插入图片描述

进行相关配置信息后,点击start live capture自动化放包并copy tokens

在这里插入图片描述
复制到以下页面

在这里插入图片描述
不知道为什么这里是乱序(可能没有充钱,我这里是社区版)但是我用肉眼发现了端倪,在73982到73984中间并没有73983这个数字串,代表可能这个token已经登入到这个会话,因为后半部分也是递增的,可以选中后半部分的最后两位进行爆破,我这里只相差十就直接发到reapeater模块一个一个试了

在这里插入图片描述

按理说应该会得到congratulations的恭喜字段,但是我这里失败了(不知道为什么也可能是我操作的问题)大致思路就是这样,下次换个软件再试试。

Spoof an Authentication Cookie认证cookie欺骗

如果指定了正确的身份验证cookie,许多应用程序将自动将用户登录到其站点。 如果可以获取生成cookie的算法,则有时可以猜测cookie的值。 有时,cookie会留在客户端计算机上,并且可以通过利用另一个系统漏洞进行窃取。 有时,使用跨站点脚本可以拦截Cookie。

本课试图使学生意识到身份验证cookie,并在本课中向学生介绍一种克服cookie身份验证方法的方法。

用户应该能够绕过身份验证检查。 使用webgoat / webgoat帐户登录以查看会发生什么。 您也可以尝试aspect/aspect。 当您了解身份验证cookie时,请尝试将您的身份更改为alice登入

这里要通过认证cookie欺骗来以Alice登录,第一次登陆的时候并没有cookie信息,需要登陆之后服务器传给浏览器一个AuthCookie:

在这里插入图片描述
在这里插入图片描述
研究一番发现是用户名倒过来并且字母向后移一位比如webgoat 倒过来就是taogbew,然后向后移动一位就是ubphcfx,同理这样的话将用户为alice的cookie就能推导出来为

AuthCookie=65432fdjmb

抓包登录试一下:

在这里插入图片描述

在这里插入图片描述

登录成功;

Session Fixation(会话固定)

服务器通过唯一的会话ID识别用户。如果用户已登录并获得授权,则在他重新访问该应用程序时不必重新授权,因为会话ID可以识别该用户。在某些应用程序中,可以在Get-Request中传递会话ID。攻击从这里开始。

攻击者可以将超链接发送给具有选定会话ID的受害者。例如,这可以通过准备好的邮件来完成,该邮件看起来像是来自应用程序管理员的正式邮件。如果受害者单击该链接并登录,则攻击者已选择会话ID授权他。攻击者可以访问具有相同ID的页面,并被识别为受害者,并未经授权即登录。

总体目标:
本课程分为几个阶段。您既扮演攻击者,又扮演受害者。完成本课后,应该理解会话固定通常是如何工作的。还应该理解,对会话ID使用Get-Request是一个坏主意。

阶段一

这里我们要模拟攻击者和受害者进行实验
首先在需要发送的邮件网址后加入参数SID=77,并将自己的网址完善(这里随便都可以)

在这里插入图片描述
会提示第一步成功完成;
在这里插入图片描述

阶段二、三

这里,点击链接就会进入攻击者的陷阱(记住你现在又变成了受害者):

在这里插入图片描述
按照提示输入用户名和密码(这里要戏精一点你现在是受害者毫不知情)

在这里插入图片描述

阶段四

这里就算是攻击者的回显界面叭,然后点进去看看应该怎么进去Jane的账户:

在这里插入图片描述
之后把参数值改为你刚刚设置的值,就能成功登入:

在这里插入图片描述

到这里这系列课程就结束了;

总结:

第一节是会话劫持,这里是暴力猜解cookie(会话ID)的方式,令牌可预测。
第二节欺骗认证cookie,观察到cookie是如何对用户进行验证的,构造cookie进行登录。
第三节诱骗受害者使用攻击者“定制”的session进行登录(会话ID固定)。

防御:

1.加强对会话标识的复杂度(不能让攻击者轻易猜解会话标识)并且进行加密
2.设置合适的会话标识有效时间
3.将生成cookie算法复杂化
4.禁止对会话ID使用Get-Request(防范会话固定)

发布了19 篇原创文章 · 获赞 106 · 访问量 7618

猜你喜欢

转载自blog.csdn.net/qq_43571759/article/details/105077738
今日推荐