在看白帽子讲web安全,刚好看到认证与会话管理:也就是我们在平常渗透测试中遇到最多的登录页面,也即是用户名和密码认证方式,这是最常见的认证方式。
了解两个概念:认证和授权
1):认证的目的是为了认出用户是谁。
2):授权的目的是为了决定用户能够做什么。
书中列举的例子很形象,假设系统是一间房子,持有钥匙的人可以进门进入房子,那么屋子就是通过“锁和钥匙的匹配”来进行认证的,认证的过程就是开锁的过程。
钥匙在认证过程中,被称为“凭证”,开门的过程,在互联网里对应的是登录。
可是开门之后,什么事情能做,什么事情不能做,就是“授权”的管辖范围了。
记录下之前在渗透过程中遇到登录页面的问题,和书中所说相对应起来的话,一个是对认证,一个是对授权:
1):在认证的时候,单独对登录页面来说,可以去尝试的测试:
- 万能密码登录
- SQL注入
- 漏扫扫描,常用appscan、awvs开源工具来扫描
- XSS
- 爆破,登录页面的爆破,最常见是遇到验证码,尝试验证码绕过;或者限制的登录次数
- 一个验证码可以多次使用
- 验证码无效
- 限制登录次数,看是不是限制了IP
- 限制账号错误次数,查看是不是请求包中某个参数影响,可能是session中的值,或者post传递的值,去掉这个影响参数,尝试能不能够绕过限制
- 端口扫描,nmap,来查看端口常见漏洞
- 目录扫描,有没有未授权访问
2):在授权范围内,也是单独对登录页面来说,可以去尝试的测试:
- 尝试用低权限的账号越权登录高权限账号
- 在忘记密码处,越权修改手机或者邮箱
- 忘记密码处,越权修改别的账号密码
以上是临时能够想起来的。
这章小结:
session劫持就是一种通过窃取用户sessionID后,使用该sessionID登录进目标账户的攻击方法,此时攻击者实际是使用了目标账户的有效session。如果sessionID是保存在cookie中的,则这种攻击可以称为cookie劫持。
这里有kxlzx大神的一篇博客,做了研究,实例:
https://www.inbreak.net/archives/287