Skenario 04 / 19FAIL

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

[FAIL] Improper Inventory Management - Authentication - OTP Endpoint Versions

Deskripsi

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.

Dampak

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

Skenario

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

Fitur terdampak

Reset Password via OTP (crapi-identity)

Rekomendasi perbaikan

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

Bukti konsep

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

01 / Versi saat ini: v3/check-otp

Versi terbaru endpoint verifikasi OTP (v3) aktif.

02 / Pengamatan: versi lama v2 masih 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.

REKAMAN 01 / 1Versi saat ini: v3/check-otp
HTTP request
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 response
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.

REKAMAN 02 / 2Pengamatan: versi lama v2 masih aktif
HTTP request
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 response
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.