1. 问题说明

检查移动客户端 APP 在用户退出登录时是否会和服务器进行通信以保证本次退出的及时性。如果用户退出登录后服务器端还未退出,当会话被攻击者获取,就可能对账号进行持久性控制。

2. 测试步骤

在客户端退出账号之后,继续使用之前的会话 token 进行操作(可以直接重放直接抓取的数据包),检查用户登出后会话 token 是否在服务端被正确销毁。

下图就是退出后未销毁原 token,重放数据包仍然可以使用。

安全退出 - 图1

3. 修复建议

建议在服务器端编写响应移动客户端 APP 提出退出登录时的逻辑代码,以保证移动客户端 APP 在用户退出时同服务器端完成数据交互,完成退出(而不是通过心跳包判定退出),以防止攻击者进行重放攻击。