annyoung

Swaager에 대해서 본문

모의해킹

Swaager에 대해서

nopsled 2025. 3. 5. 11:18

대다수의 개발자들이 Swagger API Document를 이용해서 API 문서를 자동 또는 수동으로 정리하곤한다.

 

기본적으로 /swagger-ui/index.html을 사용하거나 /swagger/index.html을 사용해서 접근하곤 하지만.. 비인가자에 대한 외부 접근 차단을 위해 또는 사내 규칙 등으로 인해 의미없는 단어로 URL 라우팅을 변경한다. 예를 들어 /nopsled-swagger/view.html과 같이 수정해서 운영에 배포하는 경우가 존재한다.

 

그 경우엔 Swagger에서 사용하는 API에 대한 json 정보들이 담겨있는 api-docs를 찾아보면 가끔 나온다.

 

참고로 나는 Swagger를 발견하면 Swagger Authentication을 적용하라고 하는데.. 엔드포인트만 변경해놓고 조치했다고 하는 담당자들이 몇몇 존재하긴한다. 그 경우 이전에 찾았던 URL에서 api-docs를 조합해보면 알 수 있다. 

 

아무튼 이런 방식이 내가 자주 사용하는 방법인데 대부분의 회사는 규칙이 있다. 회사내 특정 팀에서 Swagger를 사용하는 경우 그 팀은 대부분 Swagger를 사용하고 있으며 /swagger-ui/index.html로 접근이 된다면 다른 서비스도 /swagger-ui/index.html로 접근이 가능하다.

 

하지만, /nopsled-swagger/index.html로 변경해서 Swagger에 접속한다면 공격자의 입장에서는 찾을 방법이 없으므로 API 도메인과 /v1/api-docs, /v2/api-docs, /v3/api-docs, /api-docs, /api/api-docs, /api/v3/api-docs와 같이 컨텍스트를 조합해서 접근해보면 API 정보들이 담겨있는 json 데이터는 살아있는 가능성이 높다.

 

이렇게 얻은 api-docs 데이터는 json 형태로 사람이 보기에 어려워서 swagger-ui-viewer를 만들어봤는데.. 기능은 단지 프론트에서 입력한 api-docs URL을 프록시 서버에서 가져오도록 해놨다. 참고로 프록시를 사용한 이유는 CORS 때문에 접근이 불가능하기 때문이다.

 

https://github.com/alertkor/swagger-ui-viewer

 

GitHub - alertkor/swagger-ui-viewer: swagger-ui with proxy

swagger-ui with proxy. Contribute to alertkor/swagger-ui-viewer development by creating an account on GitHub.

github.com

 

'모의해킹' 카테고리의 다른 글

Blind SQL Injection(MySQL)  (1) 2025.02.27
Union SQL Injection(MySQL)  (0) 2025.02.27
파일 다운로드 취약점  (0) 2025.02.21
XSS input hidden  (0) 2025.02.11
ms teams가 sourcemap에 대하는 자세  (0) 2024.11.01
Comments