2.失效的身份验证及会话管理
A:介绍
身份认证,常见的身份认证用于进行用户登录、物理口令、数字签名等场景,从而进行对用户身份的辨别。
会话管理,最常见的例子就是cookie技术的使用,通过cookie来进行用户身份辨识从而减少服务器的负担。
B:漏洞原理
身份认证和会话管理是用户端与服务器进行正确交互的一道保障,而失效的身份认证以及会话管理则是破坏了这一过程,这是因为开发人员在开发应用程序时,往往注重于应用程序的功能而未考虑验证机制的逻辑性和合理性,因此,这些自定义的验证方案往往存在各种问题,举几个例子:
A:用户更改密码之前不验证用户身份,而是依靠会话的ip地址。
B:没有会话超时限制。
C:密码找回功能过于简单。
C:场景举例
D:验证点
1.会话id是否暴露在URL里面。
2.用户凭证是否可猜测,或者是重写(例如猜测用户凭证的构造算法等)
3.会话ID是否容易受到会话固定攻击。
4.密码、会话是否通过TSL进行传输
5.存储用户凭证时,有没有进行one-way hash或者加密保护。
6.会话id有设置超时吗?
E:防范措施
1.设置密码有效期
2.禁用失效用户账户
3.区分公共场所和个人场所
4.进行加密传输
5.使用强密码
网友评论