【问题标题】:Session Hijacking in practice实践中的会话劫持
【发布时间】:2009-12-01 18:33:16
【问题描述】:

我最近一直在阅读有关会话修复/劫持的内容,并了解其中的理论。

我不明白这将如何在实践中被利用。您是否必须篡改浏览器才能使用被盗的 cookie?将其附加到 URL 并将其传递给 Web 应用程序?

或者您会编写某种自定义脚本来使用它,如果可以,它会做什么?

我并不想就此或示例寻求帮助,但我想了解更多并理解。任何帮助表示赞赏。

【问题讨论】:

    标签: security session session-hijacking


    【解决方案1】:

    伪造 cookie 是微不足道的。正如 Klaus 所说,您可以直接在浏览器之外进行操作。

    这是一个如何利用它的实际示例:

    • 您登录到您的银行网站
    • 银行网站将会话 ID 放入 cookie,例如 123456
    • 您的浏览器会在每次请求时将会话 ID 发送到服务器。服务器查看他的会话存储并识别出您是不久前登录的用户
    • 我以某种方式访问​​了您的 cookie,或者我嗅探了您的一个 HTTP 请求(使用 SSL 不可能),并找出您的会话 ID:123456
    • 我为您的银行网站伪造了一个 cookie,其中包含会话 ID
    • 银行网站将我识别为您,但仍处于登录状态
    • 我将你所有的资金转入我在瑞士的秘密账户,并购买了一艘大得离谱的船

    当然,实际上,在高知名度网站上会有更高的安全性(例如,可以检查会话 ID 是否永远不会转移到另一个客户端 IP 地址),但这是会话劫持工作原理的要点。

    【讨论】:

    • “不可能使用 SSL”,密钥足够长(实际上是秘密)。您也可以使用纯文本注入期间重新协商缺陷来做一些事情。
    • +1 表示“我将你所有的资金转移到我在瑞士的秘密账户并购买了一艘可笑的大船”:D
    【解决方案2】:

    如果您使用 firefox,有一个名为 TamperData 的插件可以让您更改发送到服务器的所有内容的值。因此,如果我可以读取您的会话 cookie,我基本上可以使用我的 Firefox 访问该站点并使用 tamperdata 将您的会话 cookie 值而不是我自己的值发送给它,从而劫持您的会话。

    /克劳斯

    【讨论】:

    • 您好 Klaus,我以前使用过 TD,并注意到您必须更改每个请求。慢慢行动似乎会导致问题,这就是为什么我想知道是否有更自动化的方式来做到这一点。
    • “自动化”方式是编辑任何会话 cookie,如果页面使用 GET 或 POST 会话信息,只需替换一次,然后整个会话将被劫持在。提醒一下,我曾经用于此类事情的每个插件(Tamperdata、LiveHTTPHeaders、各种 cookie 编辑器)都充满了错误和烦恼。
    【解决方案3】:

    互联网并不是一个神奇的黑匣子,只能由浏览器按照网站希望的方式使用。

    您可以编辑您的 cookie 或 POST 数据或 GET 会话变量,或编写一个简单的脚本来执行此操作。最后,您所做的只是发送 HTTP 请求并用您想要的任何内容替换您的会话数据。

    【讨论】:

      【解决方案4】:

      您是否必须篡改浏览器才能使用被盗的 cookie?

      您可以,但在从目标站点查看页面时,在地址栏中键入 javascript:document.cookie='stolencookie=somevalue' 可能会更容易。

      【讨论】:

        猜你喜欢
        • 2011-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-27
        • 2012-04-17
        • 1970-01-01
        • 2014-07-09
        相关资源
        最近更新 更多