Kembali ke indeks

LAB FAIL

Improper Inventory Management - Authentication - OTP Endpoint Versions

Improper Inventory Management — Authentication — OTP Endpoint Versions

CWE-1059: Insufficient Technical Documentation (related to CWE-1104: Use of Unmaintained Third Party Components / legacy versions) · OWASP API9:2023 - Improper Inventory Management

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.

Rekaman lengkap

LAB Semua target adalah sistem lab. Tidak ada satu pun yang merupakan pekerjaan klien. Bukti ditampilkan apa adanya; secret dihitamkan.

Versi saat ini: v3/check-otp

Versi terbaru endpoint verifikasi OTP (v3) aktif.

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 saat ini: v3/check-otp

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.

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
}
Pengamatan: versi lama v2 masih aktif

← Kasus sebelumnya: Broken Object Level Authorization - Workshop - Mechanic Report (Unauthenticated) Kasus berikutnya: JWT Signature Not Verified - Authentication - JWT Validation →