A2 失效的身份认证和会话管理

本文详细介绍了身份认证和会话管理中的常见问题和审计重点,包括明文传输、大小写敏感性、错误提示策略、密码复杂度、多因素认证(MFA)以及验证码和会话管理的安全措施。通过审计登录、忘记密码、验证码功能以及会话管理,强调了防止中间人攻击、用户名枚举、密码爆破等风险的重要性。同时,提醒开发者关注如会话超时、cookie安全设置等降低攻击面的措施。
摘要由CSDN通过智能技术生成

0x00:身份认证介绍

我们先来介绍失效的身份认证,对于身份认证大家已经再熟悉不过了,其用来控制一些文件、数据、网页等访问的控制,例如最常见的账号和密码,各种登录功能等。除了账号和密码外,常见的还有一个是客户端证书,例如银行登录需要 U 盾或者一些证书插到物理机等。再一个生物识别,例如指纹和虹膜等。再一个基于设备的一次性密码,例如设备每分钟都会更改其访问密码,常见的例如银行字符 U 盾的随机 6 位数。同时还有常见的 oauth 认证,也就是第三方认证例如微信 qq 登录等。最后就是 SSO 单点登录,单个系统认证登录后,其他系统便都有访问权限。

0x01:审计身份验证常见的问题

了解身份认证后,我们来看下如果做代码审计,应该注意哪些问题。

1,第一个就是我们常说的明文传输,确保登录页面只能在 TLS 下使用,如果站点是 https,而换成 http 也能访问的话,则会存在中间人攻击,拦截数据包嗅探账号和密码,或者修改提交的请求地址到自己的服务器。

2,第二个是用户名建议不要区分大些写,如果区分大小写,那么 Test 和 test 是两个账号,则用户会混淆,造成程序混乱。

3,第三个是确保错误提示不会泄露一些隐私信息,例如只提示用户名错误或者只提示密码错误,那么恶意攻击者可以通过提示来探测出用户名是否存在,且可进行用户名枚举。

4,第四个是确保用户输入的字符都在密码中,例如 oracle 数据库,@符号后面的内容会被当作网络服务,有些案例,如果用户密码带有 @符则会登录失败。

5,第五个应该对密码的长度进行要求,强制密码长度,可以有效的加大被暴力破解的可能。

6,第六个要限制其密码错误的尝试次数,避免恶意攻击者无限制的猜测密码,例如提交错误次数超过 5 次后则锁定一小时。

7,第七个是强制用户过了指定期限范围则需要修改密码,当然这个外部网站和一同一般不使用,如果是内网则可以使用此策略,同时通过 hash 等来判断不能使用最近 5 次已使用过的密码。

8,第八个是密码复杂度,在第五条限制长度的基础上应该再限制其字符复杂类型,如果只要求密码十位以上,则 0123456789 依然是一个弱口令,常见的字符复杂度应包含大小写字母数字和特殊符号。

9,第九个很少见,但也存在,就是一些网站提供了重置密码功能,这个和忘记密码不同,一些网站的重置密码会发送给指定用户的邮箱或搜集一条信息,然后信息里包含了一个随机密码用来登录,登录后再来修改密码,这个功能需要做频率限制,不能无限制请求发送&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值