Session 如何防止此会话固定攻击?

Session 如何防止此会话固定攻击?,session,session-fixation,Session,Session Fixation,我试图理解针对mtgox(一家著名的比特币交易所)的理论描述的会话固定攻击: 我发现会话固定导致帐户接管。长话短说 简而言之,这里是: name='document.cookie=“SESSION\u ID=SID;Domain=.mtgox.com; 路径=/code“; 地点:https://payment.mtgox.com/38131846-a564-487c-abfb-6c5be47bce27/e6325160-7d49-4a69-b40f-42bb3d2f7b91?payment[取

我试图理解针对mtgox(一家著名的比特币交易所)的理论描述的会话固定攻击:

我发现会话固定导致帐户接管。长话短说 简而言之,这里是:

name='document.cookie=“SESSION\u ID=SID;Domain=.mtgox.com; 路径=/code“; 地点:https://payment.mtgox.com/38131846-a564-487c-abfb-6c5be47bce27/e6325160-7d49-4a69-b40f-42bb3d2f7b91?payment[取消]=取消'

  • 创建签出按钮并将取消URL设置为javascript:eval(name)

  • 将有效负载放入window.name并重定向到“https://payment.mtgox.com/38131846-a564-487c-abfb-6c5be47bce27/e6325160-7d49-4a69-b40f-42bb3d2f7b91?payment[取消]=取消“ (获取可访问的操作)。MtGox有X-Frame-Options,因此无法在 iframe

  • 用户应该等待5秒钟,直到JS中的setTimeout将位置分配给我们的javascript:URL

  • 从服务器端获取一些来宾SID,并使用这个XSS修复它。这叫做丢饼干,我们的饼干会遮挡原始会话ID 因为会先发送更多特定路径。
    document.cookie=“SESSION\u ID=SID;Domain=.mtgox.com;Path=/code”

  • 关上窗户

  • 有一天用户登录,他的会话将保持不变。服务器脚本应每5分钟运行一次cron任务,检查SID是否正确 还是“客人”。一旦用户登录,您就可以使用固定SID 代表其帐户执行任何操作-“会话骑行”

  • 我会想,如果mtgox将他们的cookie设置为http,那么这会阻止这种情况发生吗


    答案是什么?

    他们应该验证
    取消URL
    是否是有效的HTTP绝对URL

    i、 e.检查它是否以
    http://
    https://

    任何不匹配的内容都应被拒绝,并向其发出警告

    这将阻止输入JavaScript代码,因为在取消链接中,协议将是
    http
    /
    https
    ,而不是
    JavaScript

    
    
    取消URL
    还必须正确地进行HTML编码,以防止中断
    href
    属性值上下文

    我会想,如果mtgox将他们的cookie设置为http,那么这会阻止这种情况发生吗


    设置Cookie可以防止Cookie被盗,但如果该漏洞存在,则意味着可能存在其他漏洞,如场景中描述的漏洞。由于cookie是在JavaScript中设置的,这将覆盖HttpOnly标志,因为路径更为具体。服务器无法在HTTP请求中检查此cookie是否为HttpOnly(或路径),因此此标志无法阻止此攻击的发生。

    为什么允许对任何敏感/安全相关的内容进行不安全的
    HTTP
    连接?由于xss攻击,会话固定在
    payment.mtgox.com
    上,不是在商家网站上(
    example.com
    ),我的回答有用吗?