웹 API 침투 테스트
Reading time: 4 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
API 침투 테스트 방법론 요약
API 침투 테스트는 취약점을 발견하기 위한 구조화된 접근 방식을 포함합니다. 이 가이드는 실용적인 기술과 도구를 강조하는 포괄적인 방법론을 요약합니다.
API 유형 이해하기
- SOAP/XML 웹 서비스: 문서화에 WSDL 형식을 사용하며, 일반적으로
?wsdl
경로에서 찾을 수 있습니다. SOAPUI 및 WSDLer (Burp Suite 확장)와 같은 도구는 요청을 파싱하고 생성하는 데 유용합니다. 예제 문서는 DNE Online에서 접근할 수 있습니다. - REST APIs (JSON): 문서는 종종 WADL 파일로 제공되지만, Swagger UI와 같은 도구는 상호작용을 위한 보다 사용자 친화적인 인터페이스를 제공합니다. Postman은 예제 요청을 생성하고 관리하는 데 유용한 도구입니다.
- GraphQL: API를 위한 쿼리 언어로, API의 데이터에 대한 완전하고 이해 가능한 설명을 제공합니다.
실습 실험실
- VAmPI: OWASP 상위 10 API 취약점을 다루는 실습을 위한 의도적으로 취약한 API입니다.
API 침투 테스트를 위한 효과적인 요령
- SOAP/XML 취약점: XXE 취약점을 탐색하되, DTD 선언은 종종 제한됩니다. XML이 유효한 경우 CDATA 태그를 통해 페이로드 삽입이 가능할 수 있습니다.
- 권한 상승: 다양한 권한 수준으로 엔드포인트를 테스트하여 무단 접근 가능성을 식별합니다.
- CORS 잘못 구성: 인증된 세션에서 CSRF 공격을 통한 잠재적 악용 가능성을 조사하기 위해 CORS 설정을 확인합니다.
- 엔드포인트 발견: API 패턴을 활용하여 숨겨진 엔드포인트를 발견합니다. 퍼저와 같은 도구를 사용하여 이 과정을 자동화할 수 있습니다.
- 매개변수 변조: 요청에서 매개변수를 추가하거나 교체하여 무단 데이터 또는 기능에 접근해 봅니다.
- HTTP 메서드 테스트: 요청 메서드(GET, POST, PUT, DELETE, PATCH)를 변경하여 예상치 못한 동작이나 정보 유출을 발견합니다.
- Content-Type 조작: 서로 다른 콘텐츠 유형(x-www-form-urlencoded, application/xml, application/json) 간에 전환하여 파싱 문제나 취약점을 테스트합니다.
- 고급 매개변수 기술: JSON 페이로드에서 예상치 못한 데이터 유형으로 테스트하거나 XML 데이터를 가지고 XXE 주입을 시도합니다. 또한 매개변수 오염 및 와일드카드 문자를 사용하여 더 넓은 테스트를 시도합니다.
- 버전 테스트: 이전 API 버전은 공격에 더 취약할 수 있습니다. 항상 여러 API 버전에 대해 확인하고 테스트합니다.
API 침투 테스트를 위한 도구 및 리소스
- kiterunner: API 엔드포인트 발견에 탁월합니다. 이를 사용하여 대상 API에 대한 경로 및 매개변수를 스캔하고 무차별 대입합니다.
bash
kr scan https://domain.com/api/ -w routes-large.kite -x 20
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0
kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
- https://github.com/BishopFox/sj: sj는 관련 API 엔드포인트의 약한 인증을 확인하여 노출된 Swagger/OpenAPI 정의 파일의 감사를 지원하도록 설계된 명령줄 도구입니다. 또한 수동 취약점 테스트를 위한 명령 템플릿을 제공합니다.
- automatic-api-attack-tool, Astra, restler-fuzzer와 같은 추가 도구는 공격 시뮬레이션에서 퍼징 및 취약점 스캐닝에 이르기까지 API 보안 테스트를 위한 맞춤형 기능을 제공합니다.
- Cherrybomb: OAS 파일을 기반으로 API를 감사하는 API 보안 도구입니다(이 도구는 Rust로 작성됨).
학습 및 연습 자료
- OWASP API Security Top 10: 일반적인 API 취약점을 이해하는 데 필수적인 읽기 자료입니다 (OWASP Top 10).
- API Security Checklist: API 보안을 위한 포괄적인 체크리스트입니다 (GitHub link).
- Logger++ Filters: API 취약점을 탐색하기 위해 Logger++는 유용한 필터를 제공합니다 (GitHub link).
- API Endpoints List: 테스트 목적으로 사용할 수 있는 잠재적인 API 엔드포인트의 선별된 목록입니다 (GitHub gist).
References
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.