攻击会话管理

来源:互联网 发布:淘宝虚拟宝贝自动发货 编辑:程序博客网 时间:2024/06/01 09:16
1.登录一个应用程序后,服务器建立以下cookie:
Set-cookie: sessid=amltMjM6MTI0MToxMTk0ODcwODYz;
一个小时后,再次登录并得到以下cookie:
Set-cookie: sessid=amltMjM6MTI0MToxMTk0ODc1MTMy;
通过这些cookie,可以得出什么推论?

  sessid cookie包含一个Base64编码的字符串。解码收到的两个cookie可得到以下值:
  jim23:1241:1194870863
  jim23:1241:1194875132
  解码后的cookie包含三个以分号分隔的数据项。初看来,这三个值可能包含用户名、数字用户标识和一个不断变化的数值。最后一项包含10个数字,看起来像一个Unix时间戳。Unix时间戳转换工具转换这两个值后得到以下信息:
  Mon, 12 Nov 2007 12:34:23 UTC
  Mon, 12 Nov 2007 13:45:32 UTC
  这表示创建会话的时间。
  因此,会话令牌似乎由有意义的用户相关数据和一个可预测的数据项构成。理论上,可以实施蛮力攻击来猜测发布给其他应用程序用户的令牌。

2.某个应用程序使用由6个字符组成的数字字母会话令牌和由5个字符组成的数字字母密码。它们全都由某种无法预测的算法随机生成。其中哪一个最有可能成为蛮力猜测攻击的目标?列出影响你做出决策的各种不同因素。
  与由5个字符组成的密码相比,由6个字符组成的会话令牌的可能值要多得多。因此,似乎较短的密码是最有价值的攻击目标。
  但是,针对密码的蛮力攻击与针对会话令牌的蛮力攻击之间存在一些重要的差异。在尝试猜测密码时,必须同时提交用户名和密码,因此每个请求最多只能针对一个账户发动攻击,甚至可能无法针对任何账户发动攻击。你可能已经知道一些用户名,或者能够枚举出用户名,或者可能需要同时猜测用户名和密码。登录机制可能包含多个阶段,或者响应速度较慢。登录机制还可能实施了账户锁定机制,这会显著降低你的攻击速度。
  另一方面,在尝试猜测会话令牌时,通常可以同时针对多个用户。应用程序中可能有20、2000或0位已登录用户。如果某位用户当前并未登录,则无法以这种方式对其实施攻击。在收到大量无效令牌时,应用程序根本没有办法实施任何类型的“锁定”。正常情况下,令牌猜测攻击的速度非常快,通常,包含无效令牌的请求会立即收到包含错误消息或重定向的响应。
  简言之,这个问题并没有确定的答案。哪一个是最有价值的目标,将取决于你的目的和应用程序的其他因素。如果许多用户都已登录并且只需要攻破其中一位用户,则最好是针对会话实施攻击。如果希望攻破某个极少登录的管理账户,则实施密码猜测攻击会更加有效。

3.登录位于以下URL的一个应用程序后:
https://foo.wahh-app.com/login/home.php
服务器建立以下cookie:
Set-cookie: sessionId=1498172056438227; domain=foo.wahhapp.com; path=/login; HttpOnly;
然后访问下面的URL。浏览器会将sessionId cookie提交给哪些URL?(选出全部答案。)
(1) https://foo.wahh-app.com/login/myaccount.php
(2) https://bar.wahh-app.com/login
(3) https://staging.foo.wahh-app.com/login/home.php
(4) http://foo.wahh-app.com/login/myaccount.php
(5) http://foo.wahh-app.com/logintest/login.php
(6) https://foo.wahh-app.com/logout
(7) https://wahh-app.com/login/
(8) https://xfoo.wahh-app.com/login/myaccount.php

(1)是。其中的域和路径均与cookie范围相匹配。
(2)否。其中的域与cookie的域范围不同,也不是它的子域。
(3)是。其中的域是范围中指定的域的子域,且路径与范围相匹配。
(4)是。其中的域和路径均与cookie范围相匹配。虽然采用了HTTP协议,但并未指定secure标记,因此仍然会传送该cookie。
(5)是。其中的域与cookie范围相匹配。由于路径范围在/login后并没有斜线,因此,该范围将不仅包括路径/login/,而且包括任何其他与/login前缀匹配的路径。
(6)否。其中的路径与cookie范围不匹配。
(7)否。其中的域是在范围中指定的域的父域。
(8)否。其中的域与cookie的域范围不同,也不是它的子域。

4.所针对的应用程序除使用主会话令牌外,还使用每页面令牌。如果收到一个不按顺序发送的每页面令牌,整个会话将被终止。假设发现了某种缺陷,可通过它预测或截获应用程序发布给当前正在访问应用程序的其他用户的令牌,那么是否能够劫持他们的会话?
  攻击者仍有可能实施会话劫持攻击。如果攻击者获得了发布给某个用户的令牌,就可以立即使用那些令牌提出请求,并且服务器将接受这些请求。但是,如果该用户随后向应用程序提出另一个请求,其提交的每页面令牌将出现顺序错误,整个会话将被终止。因此,如果用户仍然在与应用程序交互,则实施攻击的可能性会非常低。如果攻击者只希望利用用户的权限执行特定操作,则可以实施一次脚本攻击,在有限的时间间隔内执行所需操作。

5. 登录一个应用程序后,服务器建立以下cookie:
Set-cookie: sess=ab11298f7eg14;
单击“退出”按钮后,应用程序执行以下客户端脚本:
document.cookie=”sess=”;
document.location=”/”;
通过这种行为,可以得出什么结论?

  退出功能存在缺陷。
  上述脚本将使浏览器中当前保存的会话令牌失效,也就是说,随后的任何请求将不会提交之前的令牌值。然后,该脚本将启动一个指向应用程序起始页面的重定向。任何访问受保护功能的尝试将遭到拒绝,因为相关请求并不属于通过验证的会话的一部分。
  但是,客户端应用程序并未将已执行了退出操作这一信息传达给服务器。服务器上的用户会话将仍处于活动状态,如果将之前发布的令牌提交给服务器,服务器将继续接受该令牌。在会话超时或以其他方式被清除之前,这种情况会一直持续。在这段时间内,已通过某种方式截获或猜测出令牌值的攻击者就可以继续使用令牌来劫持用户的会话。
原创粉丝点击