mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
56 lines
7.0 KiB
Markdown
56 lines
7.0 KiB
Markdown
# Web API Pentesting
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## API Pentesting Methodology Summary
|
||
|
||
Pentesting APIs передбачає структурований підхід до виявлення вразливостей. Цей посібник охоплює всебічну методологію, підкреслюючи практичні техніки та інструменти.
|
||
|
||
### **Understanding API Types**
|
||
|
||
- **SOAP/XML Web Services**: Використовують формат WSDL для документації, зазвичай знаходиться за шляхами `?wsdl`. Інструменти, такі як **SOAPUI** та **WSDLer** (розширення Burp Suite), є важливими для парсингу та генерації запитів. Приклад документації доступний на [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): Навмисно вразливий API для практики, що охоплює 10 найкращих вразливостей API за версією OWASP.
|
||
|
||
### **Effective Tricks for API Pentesting**
|
||
|
||
- **SOAP/XML Vulnerabilities**: Досліджуйте вразливості XXE, хоча оголошення DTD часто обмежені. Теги CDATA можуть дозволити вставку корисного навантаження, якщо XML залишається дійсним.
|
||
- **Privilege Escalation**: Тестуйте кінцеві точки з різними рівнями привілеїв, щоб виявити можливості несанкціонованого доступу.
|
||
- **CORS Misconfigurations**: Досліджуйте налаштування CORS на предмет потенційної експлуатації через 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
|
||
```
|
||
- [**https://github.com/BishopFox/sj**](https://github.com/BishopFox/sj): sj - це інструмент командного рядка, призначений для допомоги в аудиті **викритих файлів визначення Swagger/OpenAPI**, перевіряючи відповідні API кінцеві точки на наявність слабкої аутентифікації. Він також надає шаблони команд для ручного тестування вразливостей.
|
||
- Додаткові інструменти, такі як **automatic-api-attack-tool**, **Astra** та **restler-fuzzer**, пропонують спеціалізовані функції для тестування безпеки API, починаючи від симуляції атак до фуззингу та сканування вразливостей.
|
||
- [**Cherrybomb**](https://github.com/blst-security/cherrybomb): Це інструмент безпеки API, який проводить аудит вашого API на основі файлу OAS (інструмент написаний на 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)).
|
||
|
||
## Посилання
|
||
|
||
- [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|