Web API Pentesting
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
API Pentesting Methodology Summary
Pentesting APIs передбачає структурований підхід до виявлення вразливостей. Цей посібник охоплює всебічну методологію, підкреслюючи практичні техніки та інструменти.
Understanding API Types
- SOAP/XML Web Services: Використовують формат WSDL для документації, зазвичай знаходиться за шляхами
?wsdl
. Інструменти, такі як SOAPUI та WSDLer (розширення Burp Suite), є важливими для парсингу та генерації запитів. Приклад документації доступний на DNE Online. - REST APIs (JSON): Документація часто надається у файлах WADL, проте інструменти, такі як Swagger UI, забезпечують більш зручний інтерфейс для взаємодії. Postman є цінним інструментом для створення та управління прикладами запитів.
- GraphQL: Мова запитів для API, що пропонує повний та зрозумілий опис даних у вашому API.
Practice Labs
- 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: Чудово підходить для виявлення кінцевих точок 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 - це інструмент командного рядка, призначений для допомоги в аудиті викритих файлів визначення Swagger/OpenAPI, перевіряючи відповідні API кінцеві точки на наявність слабкої аутентифікації. Він також надає шаблони команд для ручного тестування вразливостей.
- Додаткові інструменти, такі як automatic-api-attack-tool, Astra та restler-fuzzer, пропонують спеціалізовані функції для тестування безпеки API, починаючи від симуляції атак до фуззингу та сканування вразливостей.
- Cherrybomb: Це інструмент безпеки API, який проводить аудит вашого API на основі файлу OAS (інструмент написаний на 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).
Посилання
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.