损坏的身份验证和会话管理

Broken Authentication and Session Management

使用 Firefox:我使用 ZAP 代理的有效凭据进行了身份验证我捕获了 302 响应代码和一个有效的 cookie。

使用 Chrome:我提供了错误的凭据并将响应替换为包含有效捕获 cookie 的捕获 302 响应。我现在可以登录应用程序了。

这是否发现了 误报 案例?

如果不是,那么解决此问题的缓解措施是什么。


建议的缓解措施:

应该验证在多个浏览器和多台机器上的多个用户登录。 如果匹配,则使现有 cookie 无效并让用户再次进行身份验证。


我是一名渗透测试员,没有应用程序代码。


用户不应在未提供有效凭据的情况下通过应用程序进行身份验证。

请记住,如果您窃取了会话 cookie - 就像您窃取了有效凭据一样。您之前提供了错误的凭据这一事实并不在乎 - 只要您拥有有效的会话 cookie,就如同您拥有有效的门钥匙一样 - 您可以进入。

可以吗?这取决于。 首先,它取决于会话 cookie。如果它有标志 HttpOnly 和安全标志,并且整个通信是通过 ssl (https) 发送的,我们可以假设这个 cookie 是安全的,因为理论上 - 它只能在服务器和发送设备上访问,只能通过浏览器访问。它可能被盗(理论上)的唯一情况就是像你一样 - 有人可以访问已登录的设备并窃取它。保护这台 PC 的是杀毒软件、用户等,而不是经过测试的系统来防止此类窃取。

另一方面 - 如果系统存储了一些关键数据,它应该不仅通过 cookie 来验证用户。它还应该检查请求是否是从与 cookie 关联的浏览器相同的浏览器发送的,具有相同的 ip 等。请记住,这些数据仍然可以被篡改。

会话 cookie 就像一把门的钥匙 - 如果有人拿到了您的,他就可以进入大楼。这里的问题不在于有效密钥允许任何使用它的人进入的事实,而是该密钥允许打开的事实。这取决于他输入的内容。如果钥匙允许进入自行车储物柜或厕所 - 不,它足够安全 - 只要你不允许任何人拥有你的钥匙(或偷走 cookie)它就很好。但是,如果此密钥允许用户进入银行金库 - 这是一个很大的安全问题,因为进入金库不仅要依靠有效密钥,还需要其他类型的人员验证,例如指纹或眼睛扫描仪。

因此,在不了解应用上下文的情况下,很难回答您的问题。我希望我向你解释得当