白帽子讲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

猜你喜欢

转载自www.cnblogs.com/suyi223/p/9963586.html