翻译来自:掣雷小组
成员信息:
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排序器评估会话标识符的质量
4.8、滥用不安全的直接对象引用
4.9、执行跨站点请求伪造攻击
4.6、会话固定攻击漏洞
当用户加载应用程序的主页时,它会设置一个会话标识,可以是cookie、令牌或内部变量。如果用户登录到该应用程序的受限区域时,需要用户名和密码或者其他类型的标识时,但是该标识没有被更改,那么应用程序就可能容易受到会话固定攻击漏洞的影响。
会话固定攻击发生在攻击者将会话ID值强制转换为有效用户时,然后用该用户登录到应用程序,并且攻击者提供的ID没有被更改。那么这就允许攻击者简单地使用相同的会话ID并劫持用户的会话。
在这个小节中,我们将通过使用脆弱的虚拟机vm_1中的一个应用程序来学习会话固定攻击的过程。
实战演练
WebGoat在会话固定方面的练习有些简单,但很有说明性。我们将用它来说明如何执行这一攻击:
1. 在虚拟机Kali中,登录WebGoat,进入菜单中的Session Management Flaws |Session Fixation。
2. 我们正处于攻击的第一阶段。里面描述说我们是一个攻击者,试图发送钓鱼电子邮件给我们的受害者,以强制使用我们选择的会话ID。用以下代码替换HTML代码中的href值(注意大写,因为服务器区分大小写):
/WebGoat/attack/?Screen=56&menu=1800&SID=fixedsessionID
这里最重要的部分是SID参数,它包含一个由攻击者我们控制的会话值。
3. 单击Send Mail进入第二阶段
4. 在第二阶段,我们从受害者阅读恶意电子邮件的角度出发。如果你将鼠标放在指向Goat Hills Financial的链接上,你会注意到目标URL包含我们设置为攻击者的SID值:
5. 点击链接进入第三阶段。
6. 现在受害者已经使用我们所提供的登录凭据,登录到了登录界面。注意地址栏中的SID值仍然是我们设置的值:
7. 现在是第4阶段,我们回到了攻击者的视角,我们有个链接指向Goat Hills Financial,点击它进入到登录页面。
8. 注意地址栏现在有了不同的SID值;如果我们不经过验证就去登录页面会发生这样的事。使用浏览器的开发者工具,查找并更改登录表单的action参数,使其具有我们针对受害者建立的会话值:
9. 当SID值更改时,单击Login;没有必要设置任何用户名或密码,因为字段没有被验证
我们通过更改提交时登录表单使用的SID参数,来欺骗服务器认为我们的请求来自一个有效的、现有的会话。
原理剖析
在这个小节中,我们通过向受害者发送包含恶意链接的电子邮件,其中涉及了社会工程学。这个链接利用了一个会话固定攻击漏洞,攻击者已经提前就发现了这个漏洞,当受害用户登录到应用程序时,它保留攻击者提供的会话ID并将其链接到用户,这使攻击者能够在应用程序中操作自己的参数来复制相同的ID,从而劫持有效用户的会话。