Skip to content

API Testing Tasklist — OWASP API Top 10

API1:2023 — Broken Object Level Authorization (BOLA)

  • Enumerate alle object ID's die in requests voorkomen (UUID's, integers, hashes)
  • Wissel je eigen object ID's uit voor die van andere gebruikers (horizontale escalatie)
  • Test met meerdere accounts: maak object aan met account A, benader het via account B
  • Controleer alle HTTP methodes: GET werkt soms niet maar PUT/DELETE wel
  • Verifieer of de server enkel filtert op basis van een token of ook effectief ownership checkt

API2:2023 — Broken Authentication

  • Test op zwakke / voorspelbare tokens (JWT zonder signature check, UUID v1)
  • Probeer JWT algorithm confusion: alg: none, HS256 met public key als secret
  • Controleer token expiry — wordt een verlopen token geweigerd?
  • Test brute force op login endpoints (rate limiting aanwezig?)
  • Controleer of refresh tokens ongeldig worden na logout
  • Test credential stuffing op /login, /token, /oauth/token
  • Zoek naar API keys in responses, headers of JavaScript bestanden

API3:2023 — Broken Object Property Level Authorization (BOPLA)

  • Stuur extra velden mee in POST/PUT requests die je niet zou mogen zetten (mass assignment): "role": "admin", "isVerified": true
  • Controleer of de response meer velden teruggeeft dan nodig (excessive data exposure): wachtwoordhashes, interne ID's, PII van andere users
  • Vergelijk de response van een gewone user vs admin voor hetzelfde object
  • Fuzz request body met extra properties en observeer gedrag

API4:2023 — Unrestricted Resource Consumption

  • Test rate limiting op alle zware endpoints (search, export, file upload, OTP)
  • Stuur grote payloads mee om geheugen/CPU te belasten
  • Test GraphQL voor query depth / complexity limits
  • Controleer of batch requests onbeperkt zijn (bijv. /users?ids=1,2,3,...,10000)
  • Verifieer of file uploads beperkt zijn in grootte en type
  • Test regex-based input voor ReDoS mogelijkheden

API5:2023 — Broken Function Level Authorization (BFLA)

  • Ontdek admin/interne endpoints via wordlists (ffuf, feroxbuster): /admin/, /internal/, /manage/
  • Test of gewone users admin functies kunnen aanroepen door enkel de URL te kennen
  • Wissel HTTP methodes uit: endpoint accepteert GET maar wat met POST/DELETE/PUT?
  • Controleer of er verschil is in autorisatie tussen v1 en v2 van dezelfde API
  • Test privileged actions die enkel via de UI geblokkeerd zijn maar niet op API niveau

API6:2023 — Unrestricted Access to Sensitive Business Flows

  • Identificeer kritieke business flows: checkout, registratie, wachtwoord reset, OTP
  • Test of flows in de verkeerde volgorde uitvoerbaar zijn (stap 3 vóór stap 1)
  • Controleer of aankopen/acties te automatiseren zijn zonder CAPTCHA of device fingerprinting
  • Test op race conditions bij beperkte resources (kortingscodes, vouchers, beperkte stock)
  • Verifieer of tijdelijke tokens (OTP, reset links) herbruikbaar zijn

API7:2023 — Server Side Request Forgery (SSRF)

  • Zoek alle endpoints die een URL als input accepteren (webhooks, import, fetch, preview)
  • Test met intern bereikbare adressen:
    • http://169.254.169.254/ (AWS metadata)
    • http://localhost/
    • http://192.168.x.x/
  • Probeer DNS rebinding en alternatieve encodings: http://0x7f000001/, http://[::1]/
  • Test of de response informatie lekt over intern netwerk (poorten, services)
  • Controleer of de server uitgaande DNS queries doet (gebruik interactsh/Burp Collaborator)

API8:2023 — Security Misconfiguration

  • Controleer CORS: accepteert de API Origin: null of Origin: evil.com?
  • Zoek naar onnodige HTTP methodes (OPTIONS, TRACE)
  • Controleer security headers: X-Content-Type-Options, X-Frame-Options, CSP, HSTS
  • Zoek naar debug endpoints, Swagger/OpenAPI specs, /api-docs, /graphql playground
  • Controleer of stack traces of interne paden zichtbaar zijn in error responses
  • Test TLS configuratie: verouderde cipher suites, TLS 1.0/1.1 nog actief?
  • Controleer default credentials op beheerinterfaces

API9:2023 — Improper Inventory Management

  • Breng alle versies van de API in kaart: v1, v2, v3, beta, legacy
  • Test of oudere versies minder streng beveiligd zijn (geen auth, geen rate limiting)
  • Zoek naar shadow APIs via JS bundels, mobile app decompilatie of oude documentatie
  • Controleer of deprecated endpoints nog actief zijn en bereikbaar
  • Verifieer of test/staging endpoints publiek bereikbaar zijn in productie

API10:2023 — Unsafe Consumption of APIs

  • Identificeer alle third-party API's die de applicatie consumeert
  • Controleer of de applicatie responses van externe API's valideert vóór verwerking
  • Test op injection via data die uit externe bronnen binnenkomt (stored XSS, SQLi via third-party data)
  • Controleer of SSL-certificaten van externe API's gevalideerd worden
  • Test of een gecompromitteerde upstream API een cascade effect kan veroorzaken (bijv. SSRF via webhook van derde partij)