用户身份验证损坏
什么是用户身份验证损坏?
API身份验证的实现不当允许攻击者预测其他用户的身份。更一般地说,用户身份验证损坏发生在API拥有身份验证系统但无法正常工作,或者已实现的身份验证系统在某些情况下失败,从而允许攻击者将自己伪装成已认证用户。
上述系统中存在的弱点将分为两组,即凭据管理不善和会话管理不善。
A. 凭据管理不善
可以收集受害者的凭据以访问系统。攻击者窃取敏感信息的方法有很多,例如:
弱密码 - 如果受害者创建了像“12345”或“pass123”这样的弱密码。攻击者可以使用彩虹表和字典等各种密码破解技术进行暴力破解并访问系统。
弱加密 - 使用弱解密/加密算法(如base64)和弱加密算法(如SHA1和MD5)会使凭据变得脆弱。因此,必须使用强大的哈希算法存储它们,这使得密码破解更具挑战性。
B. 会话管理不善
应用程序会在您登录时分配一个会话ID给您,并存储您所有的交互信息。应用程序正是通过此会话ID与您进行交互并响应您的所有请求。如果攻击者窃取了您的会话ID,则他们可以通过冒充您的身份来登录。这被称为会话劫持。
以下是可能导致身份验证损坏的情况列表。
弱用户名和密码。
会话固定攻击。
URL重定向。
用户身份详细信息在使用哈希算法存储时未受到保护。
用户身份详细信息通过未加密的连接传输。
身份验证损坏示例
示例#1 - 凭据填充
假设您经营一家在线杂货店来销售杂货。为了发展您的业务,您实现了一个CRM系统,该系统收集并存储关键客户数据,例如姓名、电话号码、用户名和密码。
黑客设法利用CRM系统窃取所有数据。然后,他们使用相同的凭据(用户名和密码)登录客户中央银行的数据库。
在这种情况下,黑客试图成功登录中央银行的数据库,希望消费者必须同时在两个地方使用相同的凭据。这种类型的用户身份验证损坏攻击被称为凭据填充。
示例#2 - 应用程序会话超时设置不正确。
假设您去网吧并在那里用电脑登录您的Gmail帐户。发送邮件后,您只需关闭浏览器标签页并回家。
一段时间后,黑客打开您的Gmail帐户并访问您的敏感信息。发生这种情况是因为在关闭浏览器时您的凭据(用户名和密码)没有得到充分失效,因为会话已结束。
因此,如果应用程序会话超时未正确实现,黑客可以执行身份验证损坏攻击。
技术影响
身份验证是许多API的主要功能,这些问题可以直接影响从意外提交API密钥的开发人员到允许操纵按次付费API的机制,或者像OAuth这样的机制配置错误,允许攻击者冒充其他用户。
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP