hacktricks/network-services-pentesting/pentesting-web/web-api-pentesting.md

8 KiB

웹 API Pentesting

제로부터 영웅이 될 때까지 AWS 해킹 배우기 htARTE (HackTricks AWS Red Team 전문가)!

HackTricks를 지원하는 다른 방법:

Trickest를 사용하여 세계에서 가장 고급 커뮤니티 도구를 활용한 워크플로우를 쉽게 구축하고 자동화하세요.
오늘 바로 액세스하세요:

{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}

API Pentesting 방법론 요약

API Pentesting은 취약점을 발견하기 위한 체계적인 접근 방식을 포함합니다. 이 가이드는 실용적인 기술과 도구를 강조하는 포괄적인 방법론을 요약합니다.

API 유형 이해

  • SOAP/XML 웹 서비스: 일반적으로 ?wsdl 경로에서 찾을 수 있는 WSDL 형식을 사용하여 문서를 활용합니다. SOAPUIWSDLer (Burp Suite 확장 프로그램)과 같은 도구는 파싱 및 요청 생성에 유용합니다. 예제 문서는 DNE Online에서 접근할 수 있습니다.
  • REST API (JSON): 문서는 종종 WADL 파일로 제공되지만 Swagger UI와 같은 도구는 더 사용자 친화적인 인터페이스를 제공합니다. Postman은 예제 요청을 생성하고 관리하는 데 유용한 도구입니다.
  • GraphQL: API에 대한 데이터의 완전하고 이해하기 쉬운 설명을 제공하는 쿼리 언어입니다.

실습 랩

  • VAmPI: OWASP top 10 API 취약점을 다루는 실습을 위한 의도적으로 취약한 API입니다.

API Pentesting을 위한 효과적인 트릭

  • SOAP/XML 취약점: DTD 선언이 제한되는 경우가 많지만 CDATA 태그를 사용하면 XML이 유효한 상태를 유지하는 한 페이로드 삽입이 가능할 수 있습니다.
  • 권한 상승: 권한 수준이 다른 엔드포인트를 테스트하여 무단 액세스 가능성을 식별합니다.
  • CORS 구성 오류: 인증된 세션을 통해 CSRF 공격을 통해 악용 가능성을 조사하기 위해 CORS 설정을 조사합니다.
  • 엔드포인트 검색: API 패턴을 활용하여 숨겨진 엔드포인트를 발견합니다. 퍼저와 같은 도구를 사용하여 이 프로세스를 자동화할 수 있습니다.
  • 매개변수 조작: 요청에 매개변수를 추가하거나 교체하여 무단 데이터 또는 기능에 액세스해 보세요.
  • HTTP 메서드 테스트: 요청 방법을 변경하여 (GET, POST, PUT, DELETE, PATCH) 예상치 못한 동작이나 정보 노출을 발견합니다.
  • Content-Type 조작: 다른 콘텐츠 유형 (x-www-form-urlencoded, application/xml, application/json) 간 전환하여 파싱 문제나 취약점을 테스트합니다.
  • 고급 매개변수 기술: JSON 페이로드에서 예상치 못한 데이터 유형을 테스트하거나 XXE 삽입을 위해 XML 데이터를 조작해 보세요. 더 넓은 테스트를 위해 매개변수 오염 및 와일드카드 문자를 시도해 보세요.
  • 버전 테스트: 오래된 API 버전은 공격에 민감할 수 있습니다. 항상 여러 API 버전을 확인하고 테스트하세요.

API Pentesting을 위한 도구 및 리소스

  • kiterunner: API 엔드포인트를 발견하는 데 탁월합니다. 대상 API에 대해 경로 및 매개변수를 스캔하고 브루트 포스하는 데 사용하세요.
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
  • 추가 도구인 automatic-api-attack-tool, Astra, 그리고 restler-fuzzer는 API 보안 테스트를 위한 맞춤 기능을 제공하며, 공격 시뮬레이션부터 퍼징 및 취약점 스캔까지 다양한 기능을 제공합니다.
  • Cherrybomb: OAS 파일을 기반으로 API를 감사하는 API 보안 도구입니다(이 도구는 러스트로 작성되었습니다).

학습 및 실습 자료

  • OWASP API Security Top 10: 일반적인 API 취약점을 이해하기 위한 필수 독서 자료 (OWASP Top 10).
  • API Security Checklist: API를 보호하기 위한 포괄적인 체크리스트 (GitHub 링크).
  • Logger++ Filters: API 취약점을 찾기 위해 유용한 필터를 제공하는 Logger++ (GitHub 링크).
  • API Endpoints List: 테스트 목적을 위한 잠재적인 API 엔드포인트의 선별 목록 (GitHub gist).

참고 자료

Trickest를 사용하여 세계에서 가장 고급 커뮤니티 도구를 활용한 워크플로우를 쉽게 구축하고 자동화하세요.
오늘 바로 액세스하세요:

{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}

제로부터 영웅이 될 때까지 AWS 해킹을 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법: