[PortSwigger] API testing : Exploiting an API endpoint using documentation 문제 풀이

 

 

💻 "Burp Suite가 내 손에 쥐어진 순간, 취약점은 숨을 곳이 없다..."
"나는 오늘도 웹의 틈새를 파고들어, 공격 기회를 사냥한다."

 

 

📚 API 문서 노출 취약점 이해를 위한 기반 지식

 

1️⃣ RESTful API 기본 개념

 

- REST API가 무엇인지, 어떻게 동작하는지 이해.

 

- 주요 HTTP 메서드:
  GET : 데이터 조회
  POST : 데이터 생성
  PUT / PATCH : 데이터 수정
  DELETE : 데이터 삭제 ✅ (이번 문제 핵심)

 

- URL 경로 설계 방식, 리소스 개념.

2️⃣ Swagger / OpenAPI 이해


- 개발자들이 API 문서를 자동으로 생성/공개하는 도구.

- /swagger, /openapi.json 같은 경로가 왜 노출 포인트가 되는지 파악.

- 문서 상에서 직접 API 요청을 테스트할 수 있다는 점을 알아야 함.

3️⃣ HTTP 프로토콜 & 요청 구조

 

- HTTP 요청(Request)와 응답(Response)의 구조 이해.

- 헤더(Header), 메서드(Method), 바디(Body) 등의 의미.

- Burp Suite 같은 툴로 HTTP 트래픽 분석 가능해야 함.

4️⃣ 인증/권한 관리 취약점 (Access Control)


- API 문서가 노출됐다고 해도, 원래는 권한 체크가 있어야 안전.

- 이번 케이스처럼 권한 없이 민감한 기능(DELETE /users/carlos)이 열려있는 게 문제!

- 수평적/수직적 권한 상승 개념 이해.

5️⃣ 보안 취약점 분류 (OWASP API Top 10)

API1:2019 - Broken Object Level Authorization

API9:2019 - Improper Assets Management 👉 숨겨야 할 문서/API가 노출된 경우

- API 보안의 기본적인 취약점 카테고리 숙지.

✅ 추가로 도움되는 지식

 

Burp Suite 활용법 : 트래픽 가로채기, 히스토리 확인, 요청 재전송.

기본적인 스크립트 언어 (ex. curl 사용법) : API 테스트 시 유용.

보안 마인드셋 : "공개된 건 다 활용 가능하다!"는 사고방식.

🎯 정리
"API 문서가 열려있다고 방심하면 안 된다. 권한 검증 없이 API 기능이 동작하면 그게 바로 취약점!"

 

 

🎯 API 문제, 시작해보자!

 

🔹 문제 이름


Lab: Exploiting an API endpoint using documentation

 


To solve the lab, find the exposed API documentation and delete carlos. You can log in to your own account using the following credentials: wiener:peter.

 

📄 문제 설명

 

노출된 API 문서를 찾아서, carlos 계정을 삭제하면 클리어!

🗝️ 로그인 정보 : wiener : peter

쉽게 말해, API 문서 잘 뒤져서 DELETE 요청 한번 날리면 끝나는 문제야 😎

 


 

 

 

⚡ 공격 시나리오 정리

 

1️⃣ 제공된 계정으로 로그인


2️⃣ API 문서 경로 찾아내기 (/api, /swagger, /openapi.json 등 의심)


3️⃣ 문서에서 DELETE 기능 확인


4️⃣ carlos 계정 삭제 요청 보내기


5️⃣ 응답 확인 후 미션 클리어!

이거 완전 API 설명서 열람 서비스 아니냐 ㅋㅋ

 

 

🚀 문제풀이 과정

 

🔹 목표 : carlos 계정 삭제하기!

 

 

1️⃣ 제공된 계정으로 로그인

 

2️⃣ 이메일 업데이트해서 API 호출 유도

 

 

3️⃣ Burp Suite로 HTTP 히스토리 확인
➡️ /api, /swagger, /openapi.json 경로 탐색

 

 

4️⃣ 문서에서 DELETE 기능 확인 후 carlos 계정 삭제 요청

 

5️⃣ 응답 확인하고 문제 해결!

 

 

 

🎉 미션 클리어!

 


이번 문제는 API 문서 노출이 얼마나 위험한지 보여주는 대표적인 예시였어.


"문서만 잘 뒤져도 절반은 먹고 들어간다"는 말이 괜히 있는 게 아니지 ㅋㅋ

다음엔 더 은근슬쩍 숨겨진 API도 찾아보자구! 😄