7.0 KiB
Raw Blame History

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.
  • 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.
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).

Посилання

{{#include ../../banners/hacktricks-training.md}}