7.8 KiB
Web API Pentesting
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools.
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
API Pentesting Methodology Summary
Pentesting APIs involves a structured approach to uncovering vulnerabilities. This guide encapsulates a comprehensive methodology, emphasizing practical techniques and tools.
Understanding API Types
- SOAP/XML Web Services: WSDL 형식을 문서화에 사용하며, 일반적으로
?wsdl
경로에서 찾을 수 있습니다. SOAPUI 및 WSDLer (Burp Suite Extension)와 같은 도구는 요청을 파싱하고 생성하는 데 유용합니다. 예제 문서는 DNE Online에서 접근할 수 있습니다. - REST APIs (JSON): 문서는 종종 WADL 파일로 제공되지만, Swagger UI와 같은 도구는 상호작용을 위한 더 사용자 친화적인 인터페이스를 제공합니다. Postman은 예제 요청을 생성하고 관리하는 데 유용한 도구입니다.
- GraphQL: API를 위한 쿼리 언어로, API의 데이터에 대한 완전하고 이해 가능한 설명을 제공합니다.
Practice Labs
- VAmPI: OWASP 상위 10 API 취약점을 다루는 실습을 위한 의도적으로 취약한 API입니다.
Effective Tricks for API Pentesting
- SOAP/XML Vulnerabilities: XXE 취약점을 탐색하되, DTD 선언은 종종 제한됩니다. XML이 유효한 경우 CDATA 태그를 통해 페이로드 삽입이 가능할 수 있습니다.
- Privilege Escalation: 다양한 권한 수준으로 엔드포인트를 테스트하여 무단 접근 가능성을 식별합니다.
- CORS Misconfigurations: 인증된 세션에서 CSRF 공격을 통해 잠재적인 악용 가능성을 조사합니다.
- Endpoint Discovery: API 패턴을 활용하여 숨겨진 엔드포인트를 발견합니다. 퍼저와 같은 도구는 이 과정을 자동화할 수 있습니다.
- Parameter Tampering: 요청에서 매개변수를 추가하거나 교체하여 무단 데이터 또는 기능에 접근을 시도합니다.
- HTTP Method Testing: 요청 방법(GET, POST, PUT, DELETE, PATCH)을 변경하여 예상치 못한 동작이나 정보 유출을 발견합니다.
- Content-Type Manipulation: 서로 다른 콘텐츠 유형(x-www-form-urlencoded, application/xml, application/json) 간에 전환하여 파싱 문제나 취약점을 테스트합니다.
- Advanced Parameter Techniques: JSON 페이로드에서 예상치 못한 데이터 유형으로 테스트하거나 XML 데이터로 XXE 주입을 시도합니다. 또한, 매개변수 오염 및 와일드카드 문자를 사용하여 더 넓은 테스트를 시도합니다.
- Version Testing: 이전 API 버전은 공격에 더 취약할 수 있습니다. 항상 여러 API 버전을 확인하고 테스트합니다.
Tools and Resources for 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 보안 도구입니다(이 도구는 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
Trickest를 사용하여 세계에서 가장 진보된 커뮤니티 도구로 구동되는 워크플로우를 쉽게 구축하고 자동화하세요.
오늘 액세스하세요:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
{% hint style="success" %}
AWS 해킹 학습 및 연습:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 학습 및 연습: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud GitHub 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.