API 认证攻击全解析
1. API 认证漏洞概述
在测试 API 认证时,会发现许多困扰 Web 应用数十年的漏洞也出现在了 API 中,例如弱密码、不合理的密码要求、默认凭证、冗长的错误消息以及糟糕的密码重置流程等。此外,API 还存在一些比传统 Web 应用更常见的弱点,如完全缺乏认证、对认证尝试未应用速率限制、所有请求使用单一令牌或密钥、令牌熵不足以及 JSON Web Token (JWT) 配置存在弱点等。
API 认证攻击的常见目标是获取未授权访问,包括从无访问状态转变为未授权访问、获取其他用户的资源访问权限,或者从有限的 API 访问权限提升到特权访问权限。
2. 经典认证攻击方法
2.1 基本认证
基本认证是 API 中最简单的认证形式。消费者通过发送包含用户名和密码的请求进行认证。由于 RESTful API 不维护状态,如果 API 全程使用基本认证,每个请求都需要发送用户名和密码。因此,提供商通常仅在注册过程中使用基本认证,用户成功认证后,会颁发 API 密钥或令牌。提供商检查用户名和密码是否与存储的认证信息匹配,匹配则返回成功响应,不匹配则可能返回多种响应,如通用的“用户名或密码错误”,或者更具体地告知用户名不存在,这有助于发现和验证用户名。
2.2 密码暴力破解攻击
暴力破解 API 认证是获取 API 访问权限的直接方法之一,与其他暴力破解攻击类似,但请求是发送到 API 端点,有效负载通常为 JSON 格式,认证值可能进行了 Base64 编码。如果 API 缺乏防止暴力破解的安全控制,可利用此方法。
为了优化暴力破解攻击,可根据目标生成
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



