API Security Testing
API modern (REST/GraphQL) adalah target utama bug hunter karena sering kurang diperhatikan keamanannya dibanding web UI.
Metodologi Testing REST API
# 1. Enumerasi endpoint
# Dari JS files, dokumentasi, Swagger
katana -u https://api.target.com -jc
# 2. Cari dokumentasi API
/api/docs
/swagger.json
/openapi.json
/api-docs
/v1/swagger
BOLA — Broken Object Level Authorization
BOLA (sama dengan IDOR) adalah kerentanan #1 di OWASP API Top 10.
# Test BOLA di API
GET /api/v1/orders/{order_id}
GET /api/v1/invoices/{invoice_id}
GET /api/v1/documents/{doc_id}
# Coba ID lain, UUID lain, increment/decrement
Broken Function Level Authorization
# Admin endpoint yang bisa diakses user biasa
DELETE /api/v1/users/123 ← harusnya admin only
GET /api/v1/admin/users ← harusnya admin only
POST /api/v1/users/123/promote ← promote ke admin?
Mass Assignment
# Request update profil normal
PUT /api/user/profile
{"name": "Rizky", "email": "rizky@mail.com"}
# Tambahkan field sensitif
{"name": "Rizky", "email": "rizky@mail.com", "role": "admin", "credits": 99999}
← Jika server menerima field ini = Mass Assignment!
// CEK PEMAHAMAN
Apa yang dimaksud dengan "Mass Assignment" vulnerability di API?
AMengirim banyak request secara bersamaan
BServer menerima field sensitif (role, credits) dari request yang seharusnya tidak diizinkan
CSQL query yang memproses banyak data sekaligus
DUpload banyak file sekaligus