💻 "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도 찾아보자구! 😄