• 会话固定


    会话固定(Session fixation)是一种诱骗受害者使用攻击者指定的会话标识(SessionID)的攻击手段。这是攻击者获取合法会话标识的最简单的方法。会话固定也可以看成是会话劫持的一种类型,原因是会话固定的攻击的主要目的同样是获得目标用户的合法会话,不过会话固定还可以是强迫受害者使用攻击者设定的一个有效会话,以此来获得用户的敏感信息。

       1、 攻击者通过某种手段重置目标用户的SessionID,然后监听用户会话状态;
       2、 目标用户携带攻击者设定的Session ID登录站点;
       3、 攻击者通过Session ID获得合法会话。
    

    ** 攻击者重置SessionID的方式:**

    重置Session ID的方法同样也有多种,可以是跨站脚本攻击,如果是URL传递Session ID,还可以通过诱导的方式重置该参数,比如可以通过邮件的方式诱导用户去点击重置Session ID的URL,使用Cookie传递可以避免这种攻击。

    使用Cookie来存放Session ID,攻击者可以在以下三种可用的方法中选择一种来重置Session ID。

    • 1、 使用客户端脚本来设置Cookie到浏览器。大多数浏览器都支持用客户端脚本来设置Cookie的,例如document.cookie=”sessionid=123”,这种方式可以采用跨站脚本攻击来达到目的。防御方式可以是设置HttpOnly属性,但有少数低版本浏览器存在漏洞,即使设置了HttpOnly,也可以重写Cookie。所以还需要加其他方式的校验,如User-Agent验证,Token校验等同样有效。
    <script type='text/javascript'>document.cookie='PHPSESSID=ba9saokf601jodg9nt0ui29bq5'</script>
    
    • 2、 使用HTML的标签加Set-Cookie属性。服务器可以靠在返回的HTML文档中增加标签来设置Cookie。例如<meta http-equiv=Set-Cookiecontent=”sessionid=123”>,与客户端脚本相比,对标签的处理目前还不能被浏览器禁止。
    <meta http-equiv='Set-Cookie' content='PHPSESSID=ba9saokf601jodg9nt0ui29bq5'>
    
    • 3、 使用Set-Cookie的HTTP响应头部设置Cookie。攻击者可以使用一些方法在Web服务器的响应中加入Set-Cookie的HTTP响应头部。如会话收养,闯入目标服务器所在域的任一主机,或者是攻击用户的DNS服务器。

    • 4、如果是URL中传递的(基本上没有了)可以直接:

    http://URL/index.php?PHPSESSID=ba9saokf601jodg9nt0ui29bq5
    

    这里还有一点需要注意,攻击者如果持有的是有效的SessionID,那么防御措施就一定得校验验证。如攻击者可以先到目标站点登录,获得有效的Session ID,然后再拿这个Session ID去重置目标用户的会话标识,那么这时候用户将会在不知情的情况下访问攻击者设定的合法会话(实际上登录的是攻击者的账号了)中,从而攻击者将有可能获取到目标用户的敏感信息。
    ** 防御方法:**

       1、 用户登录时生成新的Session ID。如果攻击者使用的会话标识符不是有效的,那么这种方式将会非常有效。如果不是有效的会话标识符,服务器将会要求用户重新登录。如果攻击者使用的是有效的Session ID,那么还可以通过校验的方式来避免攻击。
       2、 大部分防止会话劫持的方法对会话固定攻击同样有效。如设置HttpOnly,关闭透明化Session ID,User-Agent验证,Token校验等。
    

    参考:https://www.jianshu.com/p/7a576569ca40

  • 相关阅读:
    Django终端打印SQL语句
    Django之缓存
    Django总结三
    Django之信号
    Django之Form的ModelForm
    git下
    Ajax实现文件的上传
    operator模块
    Django之Form自定义验证规则
    New Concept English Two 32 88
  • 原文地址:https://www.cnblogs.com/mrhonest/p/12201182.html
Copyright © 2020-2023  润新知