Improper Inventory Management - Authentication - OTP Endpoint Versions
Lingkungan lab — bukan sistem produksi
Tangkapan layar dan trafik mentah tidak diterjemahkan; teks di dalamnya mungkin menggunakan bahasa lain.
crAPI/Evidence/[FAIL] Improper Inventory Management - Authentication - OTP Endpoint Versions
01 — Catatan
Catatan pengujian
Kerentanan
Deskripsi
Dampak
CWE
OWASP
Skenario
Endpoint
Fitur terdampak
Rekomendasi perbaikan
Bukti konsep
Lihat catatan sumber (bahasa Indonesia)
Vulnerability: [FAIL] Improper Inventory Management - Authentication - OTP Endpoint Versions
Description:
Endpoint verifikasi OTP tersedia dalam beberapa versi yang aktif bersamaan: versi lama /identity/api/auth/v2/check-otp masih berfungsi berdampingan dengan versi terbaru v3. Versi lama/undokumented meningkatkan attack surface dan berpotensi memiliki kontrol keamanan yang berbeda.
Impact:
Confidentiality & Integrity: versi lama yang masih hidup memperluas permukaan serangan; penyerang dapat memilih versi dengan proteksi paling lemah (mis. untuk brute-force OTP).
CWE:
CWE-1059: Insufficient Technical Documentation (terkait CWE-1104: Use of Unmaintained Third Party Components / versi lama)
OWASP:
API9:2023 - Improper Inventory Management
Scenario:
v3 (versi saat ini) aktif. Eksploitasi: v2 (versi lama) juga masih aktif -> improper inventory (versi lama tidak dinonaktifkan).
Endpoint:
POST http://127.0.0.1:8888/identity/api/auth/v2/check-otp
POST http://127.0.0.1:8888/identity/api/auth/v3/check-otp
Affected Feature:
Reset Password via OTP (crapi-identity)
Remediation:
- Nonaktifkan/retire versi API lama (v2) yang tidak lagi digunakan.
- Kelola inventaris versi API & dokumentasikan endpoint yang aktif.
- Terapkan kontrol keamanan seragam di semua versi yang masih hidup.
POC:
1) (Screenshot 1) POST /identity/api/auth/v3/check-otp (versi saat ini) -> merespons.
2) (Screenshot 2) POST /identity/api/auth/v2/check-otp (versi LAMA) -> masih merespons (Invalid OTP), membuktikan versi lama belum dinonaktifkan.
02 — Tangkapan layar
Tangkapan layar (2)
Versi terbaru endpoint verifikasi OTP (v3) aktif.
Dampak: endpoint lama v2/check-otp masih aktif bersama v3 sehingga permukaan serangan bertambah. Perlindungannya mungkin berbeda dari v3 atau lebih lemah; rekaman ini belum membuktikan adanya bypass.
03 — Request dan response
Rekaman HTTP
Sebagian nilai kredensial disamarkan pada tampilan HTML publik ini. Penyamaran ini tidak menjamin bahwa seluruh data sensitif atau berkas tertaut sudah disamarkan.
POST /identity/api/auth/v3/check-otp HTTP/1.1
Host: 127.0.0.1:8888
Content-Type: application/json
{"email":"[REDACTED-EMAIL]","otp":"0000","password":"[REDACTED-LAB-VALUE]"}HTTP/1.1 500
Server: openresty/1.27.1.2
Content-Type: application/json
Content-Length: 58
{
"message": "Invalid OTP! Please try again..",
"status": 500
}Versi terbaru endpoint verifikasi OTP (v3) aktif.
POST /identity/api/auth/v2/check-otp HTTP/1.1
Host: 127.0.0.1:8888
Content-Type: application/json
{"email":"[REDACTED-EMAIL]","otp":"0000","password":"[REDACTED-LAB-VALUE]"}HTTP/1.1 500
Server: openresty/1.27.1.2
Content-Type: application/json
Content-Length: 58
{
"message": "Invalid OTP! Please try again..",
"status": 500
}Dampak: endpoint lama v2/check-otp masih aktif bersama v3 sehingga permukaan serangan bertambah. Perlindungannya mungkin berbeda dari v3 atau lebih lemah; rekaman ini belum membuktikan adanya bypass.