实践中的会话劫持

9

我最近一直在研究会话固定/劫持,并理解其理论。

但我不明白的是如何在实践中利用这一漏洞。您是否需要篡改浏览器以使用窃取的Cookie?将它附加到URL并传递给Web应用程序吗?

或者,您可以编写某种自定义脚本来利用此漏洞,如果是这样,那么该脚本会做什么呢?

我并不是要求在这方面提供帮助或示例,而是想学习更多并理解其中的原理。感谢您的任何帮助。

4个回答

10

伪造cookie很容易。正如Klaus所提到的,你可以在浏览器中就轻松完成。

下面是一些实际的例子,说明如何利用这个漏洞:

  • 你登录到你的银行网站
  • 银行网站将一个会话ID放入cookie中,比如123456
  • 你的浏览器在每个请求中都会发送该会话ID到服务器。服务器查看他的会话存储,并认出你是刚刚登录不久的用户
  • 我以某种方式获得了你的cookie,或者我嗅探了你的HTTP请求(如果使用SSL协议则不可能), 并发现你的会话ID: 123456
  • 我伪造一个包含该会话ID的银行网站cookie
  • 银行网站将把我当做你,仍然处于登录状态
  • 我把你所有的资金转移到我的瑞士秘密账户并买了一艘非常大的船

当然,在高调的网站上实际上会有更多安全保障(例如,可以检查会话ID是否转移到另一个客户端IP地址),但这就是会话劫持的原理。


5
可以使用足够长的(实际上是秘密的)密钥来避免SSL中的“不可能事件”。您还可以利用重新协商期间的明文注入漏洞来做一些事情。 - Tom Hawtin - tackline
3
+1 表示“我把你所有的资金转移到我的瑞士秘密账户,并购买一艘非常巨大的船” :D - Wolfer

4
如果你使用火狐浏览器,有一个名为TamperData的插件可以让你更改发送到服务器的所有值。因此,如果我能读取你的会话cookie,我基本上只需使用我的火狐浏览器和TamperData将你的会话cookie值发送到该站点,而不是我的,从而劫持你的会话。

嗨 Klaus,我以前用过 TD,并注意到你必须更改每个请求。这样做会导致速度变慢,可能会引起问题,所以我想知道是否有更自动化的方法来处理。 - user1253538
“自动化”的方法是编辑所有会话cookie,如果页面使用GET或POST会话信息,则只需替换一次,从那时起整个会话将被劫持。提醒一下,我曾经用过的所有此类插件(Tamperdata、LiveHTTPHeaders、各种cookie编辑器)都存在漏洞和烦恼。 - L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳

2

互联网并不是一个神奇的黑盒子,只能通过浏览器以网站期望的方式来使用。

你可以编辑你的cookies或POST数据或GET会话变量,或者编写一个简单的脚本来完成这些操作。最终,你所做的只是发送HTTP请求,并用任何你想要的内容替换你的会话数据。


1
你需要篡改浏览器才能利用窃取的Cookie吗?
虽然可以这样做,但只需在查看目标网站页面时在地址栏中键入javascript:document.cookie='stolencookie=somevalue'可能更容易。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接