zoukankan      html  css  js  c++  java
  • 2019-12-2:逻辑漏洞学习笔记

    身份认证安全
    暴力爆破
    在没有验证码限制或者一次验证码可以多次使用的地方,可以分为以下几种情况:
    (1)爆破用户名,当输入的用户名不存在时,会显示请输入正确用户名,或者用户名不存在
    (2)已知某个用户名,比如admin进行字典爆破
    (3)使用一个常用密码,比如123456对大量用户进行爆破
    防护
    1,用户注册时候验证密码复杂性
    2,用户登录验证码有复杂性,长度以及污染程序
    3,多重身份认证,验证账号的基础上还要验证手机号,邮箱,tooken等

    撞库
    撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网址,这就可以理解为撞库攻击。

    会话劫持漏洞原理 - session
    服务端和客户端之间是通过session(会话)来连接沟通。当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session。每个用 户的session都是独立的,并且由服务器来维护。每个用户的session是由一个独特的字符串来识别,成为session id。用户发出请求时,所发送的http表头内包含session id 的值。服务器使用http表头内的session id来识别时哪个用户提交的请求。
    Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导。


    普通攻击步骤
    1、 目标用户需要先登录站点;
    2、 登录成功后,该用户会得到站点提供的一个会话标识SessionID;
    3、 攻击者通过某种攻击手段捕获Session ID;
    4、 攻击者通过捕获到的Session ID访问站点即可获得目标用户合法会话。
    攻击者获取SessionID的方式有多种:
    1、 暴力破解:尝试各种Session ID,直到破解为止;
    2、 预测:如果Session ID使用非随机的方式产生,那么就有可能计算出来;
    3、 窃取:使用网络嗅探如cain, ettercap等,XSS攻击等方法获得。

    会话固定攻击(Sessionfixation)
    会话固定(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校验等同样有效。
    2、 使用HTML的<META>标签加Set-Cookie属性。服务器可以靠在返回的HTML文档中增加<META>标签来设置Cookie。例如<meta http-equiv=Set-Cookiecontent=”sessionid=123”>,与客户端脚本相比,对<META>标签的处理目前还不能被浏览器禁止。
    3、 使用Set-Cookie的HTTP响应头部设置Cookie。攻击者可以使用一些方法在Web服务器的响应中加入Set-Cookie的HTTP响应头部。

    防御办法
    1、 用户登录时生成新的Session ID。如果攻击者使用的会话标识符不是有效的,那么这种方式将会非常有效。如果不是有效的会话标识符,服务器将会要求用户重新登录。如果攻击者使用的是有效的Session ID,那么还可以通过校验的方式来避免攻击。
    2、 大部分防止会话劫持的方法对会话固定攻击同样有效。如设置HttpOnly,关闭透明化Session ID,User-Agent验证,Token校验等。
    3、更改session的名称:session的默认名称是PHPSESSID,此变量会保存在cookie中,如果黑客不抓包分析,就不能猜到这个名称,阻挡部分攻击。

    逻辑漏洞的挖掘步骤
    1,识别当前模块的功能,比如,密码找回,验证码,购物,登录,注册这些模块的执行步骤
    2,拦截数据包并修改里面的参数,弄清楚参数用处,根据实际情况去识别哪些是修改的,放行查看是否会触发漏洞
    3,如果没发现安全性问题,就重新识别模块功能根据步骤重新做

    未授权访问
    越权
    水平越权
    同等权限之间
    垂直越权
    不同权限之间

  • 相关阅读:
    读《人人都是产品经理》
    前端值得看的博客
    git 常用命令 创建查看删除分支,创建查看删除tag等
    看《如何令选择变得更加容易》
    读【失控】——众愚成智
    html5 postMessage
    下拉滚动加载更多数据
    html select用法总结
    分布式系统事务一致性解决方案
    nginx简易教程
  • 原文地址:https://www.cnblogs.com/sym945/p/11972014.html
Copyright © 2011-2022 走看看