Skip to content

1. API Recon

Was sind API's

  • Eine API (Application Programming Interface) stellt Funktionen („Methoden“) bereit, die du über definierte URLs (sogenannte Endpoints) aufrufst.
  • Diese Methoden arbeiten nach dem Client–Server-Prinzip:
    • Du schickst eine Request (mit URL, HTTP-Methode, Parametern).
    • Der Server liefert eine Response zurück (meist in JSON oder XML).

Beispiel: - GET /api/books → Liste aller Bücher - GET /api/books/42 → Detaildaten zu Buch mit ID 42 - POST /api/books → Neues Buch anlegen (mit Daten im Request Body) - DELETE /api/books/42 → Buch mit ID 42 löschen

API - Recon

Bedeutet, Infos über die API zu sammeln, um ihre Angriffsfläche zu verstehen

  1. Endpoints finden -> zB /api/books, /api/books/mystery
    1. Jeder Endpoint steht für einen bestimmten Zugriff auf Ressourcen
      GET /api/books HTTP/1.1 
      Host: example.com
      
  2. Interaktionen verstehen -> Welche Requests sind möglich?
    • Welche Parameter (Pflicht & Optional) verarbeitet die API?
    • Welche HTTP-Methoden (GET, POST, PUT, DELETE) und Formate (JSON, XML) werden unterstützt
    • Gibt es Rate Limits oder Authentifizierungen (API-Keys, Tokens, OAuth)

API Dokumentation API's sind meisens ausführlich dokumentiert wie diese zu nutzen sind für Developer, API Keys sind meist öffentlich - der beste Anfang für ein API Recon ist sich mit der Dokumentation auseinanderzusetzen

API-Dokumentation entdecken - Auch wenn keine offene Doku vorhanden ist, kannst du sie über die Anwendung finden, die die API nutzt. - Tools/Methoden: - Mit Burp Scanner die Anwendung crawlen. - Manuell mit Burp Browser nach Hinweisen suchen.

[!tip]- Crawler: Wie eine Art Bot der alle Links, Buttons und Formularaktionen einer Webseite nacheinander anklickt!

  • Typische Pfade für API-Doku:

    • /api
    • /swagger/index.html
    • /openapi.json
  • Tipp: Wenn du einen konkreten Endpoint findest (z. B. /api/swagger/v1/users/123), prüfe auch die übergeordneten Pfade:

    • /api/swagger/v1
    • /api/swagger
    • /api
  • Mit Intruder + Wortlisten kannst du nach häufigen Doku-Pfaden suchen.

Lab: Exploiting an API endpoint using documentation

  1. Erstmal schauen ob wir irgendwelche API verknüpfungen finden in userer HTTP Historie.
  2. Wir haben eine beim updaten der E-Mail gefundenAPI_email_abuse1.png
  3. Wir testen bisschen rum mit den Links im Burp-Repeater (Pfade können aber auch im Burp Scanner gescannt werden) -> unter /api haben wir die API Dokumentation gefunden.API_email_abuse2.png
  4. Wir nutzen diese Doku und schicken unseren eigenen Befehl über den Update-Email Request mit einem angepassten ParameterAPI_email_abuse3.png