API 구성 오류 - SwaggerUI의 스웨그 없음
요약
API 구성 오류는 API(애플리케이션 프로그래밍 인터페이스)의 부적절하거나 안전하지 않은 설정을 나타냅니다. 여기에는 취약한 인증, 입력 유효성 검사 부족 또는 부적절한 액세스 제어와 같은 문제가 포함될 수 있습니다.
API 구성 오류는 공격자에게 중요한 데이터에 대한 무단 액세스 또는 사용자 대신 작업을 수행할 수 있는 기능을 제공할 수 있습니다. 이로 인해 민감한 데이터 유출, 시스템 손상 및 기타 보안 문제가 발생할 수 있습니다.
설명
비공개 프로그램의 웹 애플리케이션 중 하나에서 SwaggerUI 끝점의 API 구성 오류를 발견했습니다. 웹사이트에서 사용자의 민감한 정보를 찾기 위해 사용했던 웹 애플리케이션의 로컬 저장소에서 인증 토큰이 유출되었습니다. 그러나 SwaggerUI 엔드포인트에 액세스하여 요청을 조사한 결과 "권한이 없습니다. 액세스하려면 전체 인증이 필요합니다"라는 오류가 표시되었고 내 눈을 사로잡은 한 가지는 응답에 시작 값 Bearer가 있는 WWW -Authenticate 헤더 였습니다 . 시작 값이 Bearer 인 권한 요청 헤더가 사용됩니다.
요청에서 토큰을 찾기 시작했지만 토큰을 찾지 못한 다음 쿠키, localstorage 및 sessiontorage에서 토큰을 찾기 시작했고 애플리케이션의 localstorage에 저장되는 인증 토큰을 찾았습니다. 토큰을 복사하여 요청에 사용한 다음 {serviceIdentifier}를 1로 변경했고 이름, 성, 직원 ID, 이메일, 부서 이름 및 전화번호와 같은 직원 세부 정보가 포함된 사용자 목록을 열거할 수 있었습니다 .
SwaggerUI란 무엇입니까?
Swagger UI는 OpenAPI 사양을 사용하여 정의된 RESTful API의 끝점을 표시하고 테스트하기 위한 사용자 친화적인 인터페이스입니다. 이를 통해 개발자는 API와 쉽게 상호 작용하고 간단하고 직관적인 형식으로 다양한 요청 및 응답을 볼 수 있습니다.
이 취약점을 어떻게 찾았습니까?
- swaggerUI의 대상 엔드포인트로 이동하여 요청을 가로채서 > 리피터로 보내고 보내기를 클릭했습니다.
3. 요청에 사용하기 위해 로컬 저장소에서 인증 토큰을 복사하여 파일에 붙여넣었습니다.
4. 그런 다음 시작 값이 Bearer 인 Authorization 헤더 와 인증 토큰을 추가했습니다.
5. 보내기를 클릭하고 사용자 세부 정보를 얻었습니다.
왜 이런 일이 일어 났습니까?
제 생각에는
이 취약점을 유발하는 두 가지 문제가 있습니다.
- 액세스 가능한 swaggerUI 끝점
- 지나치게 권한이 부여된 인증 토큰
모든 사용자는 액세스가 제한되어야 하는 모든 사용자 정보에 쉽게 액세스할 수 있습니다.
계산된 CVSS
벡터 문자열 - CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:L
점수 - 7.2 높음
완화
이 문제에 적용할 수 있는 두 가지 완화 조치가 있습니다.
- swaggerUI 끝점 제한
- 생성된 인증 토큰에 적절한 권한 부여

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































