1. 查看用户密码后台存储是否加密
1)查看数据库中的密码存储
2. 用户密码在网络传输过程中是否加密
1)查看请求数据包中的密码是否加密
3. 登录退出后session是否销毁,使用登录时的session是否不能再访问登录才能访问的页面
1)登录系统时通过Burp suite截取登录相关请求数据,并记录session信息,且空白区域右击,将请求Send Repeater,请请求发送到Repeater模块。
2)退出系统
3)在Repeater模块单击Go按钮,再次发送登录请求查看系统是否对退出后的用户授权session进行解除授权。
4、会话过期session是否销毁
1)登录系统后,查看用户信息,比如进入我的页面,同时使用Burp suite截取用户信息及session,且空白区域右击,将请求Send Repeater,请请求发送到Repeater模块。
2)停留系统代码设置的指定时长,不做任何客户端与服务器的交互操作,如30分钟,30分钟后再在Repeater模块单击Go按钮,再次发送查看用户信息请求,如果能看到用户信息则表示标识生命周期没起作用,如果看不到用户信息并提示需用户登录等信息则标识生命周期正常执行了。
5、登录session是否每次重新生成,不存在固定
1)退出系统时记录session信息。
2)再次登录,将session信息与第一步session信息做对比,如果相同则存在固定会话风险。
6、登录错误后的提示是否存在安全隐患
1)对登录失败的提示语应模糊提示,提高攻击者暴力破解的难度如登录账号或密码错误
7、 不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面
8. 密码输入框内输入的密码是否都可以在页面源码模式下被查看
7. 用户名和密码输入框分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面
1)用户名处输入:’ or 1=1#
语义分析:“#”在mysql中是注释符
select * from users where username=’’ or 1=1#’ and password=md5(’’)
等价于
select * from users where username=’’ or 1=1
2)验证系统返回页面没有语句执行结果
8. 用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改
1)如<script>alert(/xss/)</script>
9. 连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解
10.同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期
11.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性
12.是否可以记住密码,记住的密码保存是否加密,记住的密码是否有有效期,过了有效期后是否清空密码
13. 密码的强弱性,复杂度校验
14.异地登录校验、更换设备登录校验、登陆信息异常是否考虑账户冻结停用、是否允许第三方平台存储密码
15.是否可以绕开验证码校验
16.是否可以用抓包工具抓到的请求包直接登录
17. 截取到的token等信息,是否可以在其他终端上直接使用,绕开登录
18.修改cookie中的身份标识,是否可以仿冒其他用户身份并获取用户权限。
1)使用用户A账号登录系统后刷新页面同时用Burp Suite截取请求数据,并将请求数据中cookie的userid修改为用户B账号进行提交,查看页面返回信息,如果已经是B账户的账户信息了,则证明存在风险,如果有合理提示不能查看B用户信息则证明暂无风险。