mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
94 lines
7.8 KiB
Markdown
94 lines
7.8 KiB
Markdown
# Web API Pentesting
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Use [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=web-api-pentesting) 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](http://www.dneonline.com/calculator.asmx)에서 접근할 수 있습니다.
|
|
* **REST APIs (JSON)**: 문서는 종종 WADL 파일로 제공되지만, [Swagger UI](https://swagger.io/tools/swagger-ui/)와 같은 도구는 상호작용을 위한 더 사용자 친화적인 인터페이스를 제공합니다. **Postman**은 예제 요청을 생성하고 관리하는 데 유용한 도구입니다.
|
|
* **GraphQL**: API를 위한 쿼리 언어로, API의 데이터에 대한 완전하고 이해 가능한 설명을 제공합니다.
|
|
|
|
### **Practice Labs**
|
|
|
|
* [**VAmPI**](https://github.com/erev0s/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**](https://github.com/assetnote/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
|
|
```
|
|
* **automatic-api-attack-tool**, **Astra**, 및 **restler-fuzzer**와 같은 추가 도구는 공격 시뮬레이션에서 퍼징 및 취약점 스캐닝에 이르기까지 API 보안 테스트를 위한 맞춤형 기능을 제공합니다.
|
|
* [**Cherrybomb**](https://github.com/blst-security/cherrybomb): OAS 파일을 기반으로 API를 감사하는 API 보안 도구입니다(이 도구는 Rust로 작성됨).
|
|
|
|
### **학습 및 연습 자료**
|
|
|
|
* **OWASP API Security Top 10**: 일반적인 API 취약점을 이해하기 위한 필수 읽기 자료 ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)).
|
|
* **API Security Checklist**: API 보안을 위한 포괄적인 체크리스트 ([GitHub link](https://github.com/shieldfy/API-Security-Checklist)).
|
|
* **Logger++ Filters**: API 취약점을 탐색하기 위해 Logger++는 유용한 필터를 제공합니다 ([GitHub link](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)).
|
|
* **API Endpoints List**: 테스트 목적으로 잠재적인 API 엔드포인트의 선별된 목록 ([GitHub gist](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)).
|
|
|
|
## References
|
|
|
|
* [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire)
|
|
|
|
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
[**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=web-api-pentesting)를 사용하여 세계에서 **가장 진보된** 커뮤니티 도구로 구동되는 **워크플로우**를 쉽게 구축하고 **자동화**하세요.\
|
|
오늘 액세스하세요:
|
|
|
|
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
|
|
|
|
{% hint style="success" %}
|
|
AWS 해킹 학습 및 연습:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
GCP 해킹 학습 및 연습: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>HackTricks 지원하기</summary>
|
|
|
|
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
|
|
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
|
|
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.**
|
|
|
|
</details>
|
|
{% endhint %}
|