前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 4.7- 使用Burp Sequencer评估会话标识符的质量

Kali Linux Web渗透测试手册(第二版) - 4.7- 使用Burp Sequencer评估会话标识符的质量

作者头像
用户1631416
发布2019-01-02 17:06:30
1.1K0
发布2019-01-02 17:06:30
举报
文章被收录于专栏:玄魂工作室玄魂工作室

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt

标记红色的部分为今日更新内容。

第四章、测试身份验证和会话管理

4.0、介绍

4.1、用户名枚举

4.2、使用Burp Suite进行登陆页面的字典攻击

4.3、使用Hydra强制进行暴力攻击

4.4、使用Metasploit破解Tomcat的密码

4.5、手动识别Cookie中的漏洞

4.6、攻击会话固定漏洞

4.7、使用Burp Sequencer评估会话标识符的质量

4.8、滥用不安全的直接对象引用

4.9、执行跨站点请求伪造攻击


4.7、使用Burp Sequencer评估会话标识符的质量

Burp Suite的Sequencer从服务器请求数千个会话标识符(例如,通过重复登录请求),并分析响应以确定生成标识符的算法的随机性和密码强度。算法越强,攻击者就越难复制有效ID。

在本文中,我们将使用Burp Sequencer分析两个不同应用程序生成的会话ID,并确定安全会话ID生成算法的一些特征。

环境准备

我们将使用WebGoat和RailsGoat(使用Rubyon Rails框架制作的WebGoat版本)。 这两个应用程序都可用于易受攻击的VM(vm_1)。

你需要在RailsGoat中创建一个用户;所以,得到主页上进行注册。

实战演练

我们将开始分析RailsGoat的会话cookie。 我们可以使用任何PHPSESSID或JSESSIONID cookie,但我们将利用这个作为自定义值来查看其他概念。将浏览器配置为使用Burp Suite作为代理,然后按照以下步骤操作:

1. 登录RailsGoat并查看代理的历史记录,以获取设置会话cookie的响应。 你应该有标题Set-Cookie并且应该设置一个名为的cookie

_railsgoat_session.

2. 在这种情况下,这是对/ railsgoat / session的请求。 右键单击URL或请求或响应的正文,然后选择 发送到Sequencer:

3. 在继续使用Sequencer之前,让我们看看会话cookie包含的内容。 这个_railsgoat_session cookie看起来像一个base64编码的字符串,用两个连字符( - )连接到十六进制字符串。 我们将在本文后面解释这个推论。选择cookie的值,右键单击它,然后选择Send to Decoder。

4. 进入解码器,我们首先将其解码为URL,然后在第二行中将其解码为base64:

这个好像base64代码包含三个字段:session_id,它是一个十六进制值,也许是一个哈希值; csrf_token,用于防止跨站请求伪造(CSRF)攻击的值; 和user_id,似乎只是两个字符,可能是一个序号。 cookie的其余部分( - 之后的部分)不是base64编码的,并且看起来是随机哈希。 现在,我们对会话ID有了更多的了解,并且已经学习了一些关于编码和Burp Suite的解码器的知识。

5. 让我们继续我们在Sequencer中的分析。 转到Burp Suite中的Sequencer选项卡,确保选择了正确的请求和cookie:

6. 我们知道cookie是用base64编码的; 转到分析选项并在分析之前选择Base64-decode。 这样,Burp Suite将分析cookie中的解码信息。

7. 返回实时捕获选项卡,然后单击开始实时捕获。 将出现一个新窗口; 我们等待它完成。这需要一些时间。

8. 完成后,单击立即分析:

我们可以看到cookie质量很好; 这意味着攻击者不容易猜到。 随意浏览所有结果选项卡。

9. 这是一个高质量的会话cookie的例子;这次让我们来看一个不太好的会话cookie。登录WebGART并进入会话管理缺陷,劫持会话。

10.这个练习是关于通过劫持有效的会话ID来绕过登录表单的。尝试使用任何随机的用户名和密码进行登录,只是为了将其记录在Burp Suite中:

11.在这种情况下,设置会话cookie的请求是第一次加载练习的请求;在Burp Suite的历史中搜索Set-Cookie:WEAKID=响应头。这个ID仅仅是由连字符分隔的数字。

12.将请求发送到定序器

13.选择弱cookie作为目标进行分析。

14.启动实时捕获并等待它完成并执行分析:

对于这个ID,我们可以看到质量非常差。就角色分析而言,我们可以有更好的想法:

这个图表显示了每个字符位置的变化程度或重要性。我们看到,重要性从位置2增加到位置3,从位置3增加到4,然后再次下降到5,也就是连字符的位置。这表明第一ID的一部分是增量的,并且可以应用于第二部分,但是具有不同的速率。

原理剖析

BurpSuite's Sequencer对大量会话标识符(或从我们提供给它的响应中提供的任何信息)执行不同的统计分析,以确定这些数据是否被随机生成,或者是否存在允许att的可预测模式Access生成有效ID并劫持会话

首先,我们分析了一个复杂的会话cookie,该cookie由使用base64算法编码的数据结构和似乎是SHA-1哈希的数据结构组成。 我们可以告诉第一部分是base64编码的,因为它包含小写和大写字母,数字,也可能包含加号(+)或斜杠(/),它也以%3D结尾,这是URL转义 sequence = =,base64中的字符串终止符。我们说cookie的第二部分是SHA-1哈希,因为它是一个40位的十六进制字符串; 每个十六进制数字代表4位,4位* 40位= 160位; 和SHA-1是最流行的160位散列算法。

然后,我们分析了一个弱生成的会话ID。 很明显它是增量的,因为在十进制数字中,最右边位置的数字比最近的左手邻居更频繁地变化十倍。 ID的第二部分基于其长度和最高有效数字,表示Unix时间戳(https://en.wikipedia.org/wiki/Unix_time)。

另请参阅

进一步深入了解WEAKID会话cookie的生成机制,并尝试找出一种方法来发现活动会话cookie以绕过登录。 使用BurpSuite的Repeater和Intruder来促进这项工作。

要了解有关如何区分编码,散列和加密的更多信息,请查看以下优秀文章:

https://danielmiessler.com/study/encoding-encryption-hashing-obfuscation/。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档