zoukankan      html  css  js  c++  java
  • 白帽子讲web安全——认证与会话管理

    在看白帽子讲web安全,刚好看到认证与会话管理:也就是我们在平常渗透测试中遇到最多的登录页面,也即是用户名和密码认证方式,这是最常见的认证方式。

      了解两个概念:认证和授权

      1):认证的目的是为了认出用户是谁。

      2):授权的目的是为了决定用户能够做什么。

    书中列举的例子很形象,假设系统是一间房子,持有钥匙的人可以进门进入房子,那么屋子就是通过“锁和钥匙的匹配”来进行认证的,认证的过程就是开锁的过程。

    钥匙在认证过程中,被称为“凭证”,开门的过程,在互联网里对应的是登录。

    可是开门之后,什么事情能做,什么事情不能做,就是“授权”的管辖范围了。

    记录下之前在渗透过程中遇到登录页面的问题,和书中所说相对应起来的话,一个是对认证,一个是对授权:

    1):在认证的时候,单独对登录页面来说,可以去尝试的测试:

    • 万能密码登录
    • SQL注入
    • 漏扫扫描,常用appscan、awvs开源工具来扫描
    • XSS
    • 爆破,登录页面的爆破,最常见是遇到验证码,尝试验证码绕过;或者限制的登录次数
    1. 一个验证码可以多次使用
    2. 验证码无效
    3. 限制登录次数,看是不是限制了IP
    4. 限制账号错误次数,查看是不是请求包中某个参数影响,可能是session中的值,或者post传递的值,去掉这个影响参数,尝试能不能够绕过限制
    • 端口扫描,nmap,来查看端口常见漏洞
    • 目录扫描,有没有未授权访问

    2):在授权范围内,也是单独对登录页面来说,可以去尝试的测试:

    • 尝试用低权限的账号越权登录高权限账号
    • 在忘记密码处,越权修改手机或者邮箱
    • 忘记密码处,越权修改别的账号密码

    以上是临时能够想起来的。

    这章小结:

    session劫持就是一种通过窃取用户sessionID后,使用该sessionID登录进目标账户的攻击方法,此时攻击者实际是使用了目标账户的有效session。如果sessionID是保存在cookie中的,则这种攻击可以称为cookie劫持。

    这里有kxlzx大神的一篇博客,做了研究,实例:

    https://www.inbreak.net/archives/287

  • 相关阅读:
    Facade
    Adapter
    Bridge
    Factory
    Singleton
    Decorator
    Template Method
    设计模式
    寻找最小的k个数
    java并发编程(4)--线程池的使用
  • 原文地址:https://www.cnblogs.com/suyi223/p/9963586.html
Copyright © 2011-2022 走看看