u4y8Gs9fLTrJjhsijGL4SHOQBnG6Rdcc2m5wWn1z
Bookmark

Bahaya Exposing Endpoints: Bagaimana Saya Menembus Akses Admin Melalui File JavaScript di Helium Challenge

Halo halo! Hari ini sejak postingan ini dibuat saya baru saja menyelesaikan pengalaman seru mengikuti Helium Challenge, sebuah kompetisi Penetration Testing yang diadakan oleh Helium Security by CyberAcademy.

Salah satu temuan yang paling menarik bagi saya adalah betapa seringnya kita meremehkan apa yang ada di dalam file JavaScript (.js). Banyak yang berpikir file JS hanya untuk urusan tampilan atau frontend, padahal di dalamnya sering tersimpan informasi yang sangat sensitif jika tidak dikelola dengan benar.

Dalam tantangan kali ini, saya menemukan sebuah kasus klasik namun fatal: Broken Access Control. Masalah ini bermula dari informasi endpoint yang bocor di dalam kode JavaScript yang berada di tautan berikut https://vulnlib.vulnapp.id/static/js/app.js

Bayangkan, hanya dengan sedikit ketelitian saat memeriksa file JS, saya menemukan alamat /admin/users. Parahnya lagi, meskipun saya masuk sebagai akun dengan role Member biasa, sistem mengizinkan saya mengakses halaman admin tersebut tanpa validasi yang ketat di sisi server.

Oke, mari kita mulai bagaimana saya mengeksploitasi temuan saya ini, artikel ini dibuat hanya untuk tujuan edukasi, dan pembelajaran bagi kalian yang ingin belajar tentang keamanan khususnya di dunia Bug bounty.

Ringkasan

Broken Access Control yang memungkinkan pengguna dengan level akun rendah (Member) mengakses fungsi admin yang seharusnya hanya bisa dibuka oleh role Admin. Celah ini berawal dari bocornya informasi endpoint internal di dalam file JavaScript publik yang digunakan oleh aplikasi.

Jadi, tips untuk kalian yang mulai belajar tentang bug bounty kalian harus lebih teliti untuk membaca file JavaScript dan pahami cara kerja dari API aplikasi.

Untuk melihat Request/respon di Helium Challenge, saya menggunakan tools Helium Core

Helium Core

Langkah Reproduksi

  1. Kalian bisa membuka file JavaScript pada tautan berikut https://vulnlib.vulnapp.id/static/js/app.js dan kalian akan melihat sebuah beberapa endpoint berikut /admin/users cari pada bagian // Admin endpoints dan di file .js juga terdapat beberapa endpoint lain dan informasi lainnya
  2. Setelah mendapatkan endpoint tersebut kalian login ke akun yang telah kalian buat (Login sebagai member) dan bukan tautan berikut untuk mengakses halaman admin https://vulnlib.vulnapp.id/admin/users 
  3. Maka kalian akan akan di bawa ke halaman admin, dan dapat mengakses serta menggunakan fitur Export walaupun role kita hanya sebatas Member

Dampak

  • Akses hak tidak sah
  • Kebocoran data sensitif

Langkah Perbaikan

Terapkan pengecekan hak akses agar role Member tidak di izinkan mengakses atau menggunakan fitur admin, dan jangan tampilkan beberapa informasi sensitif pada file JavaScript. Karena dari file .js tersebut attacker dapat mengeksploitasi beberapa kerentanan dari informasi yang di tampilkan pada JavaScript

Penutup

Pengalaman di #HeliumChallenge ini memberikan pelajaran berharga bagi kita semua: File JavaScript yang sering kita anggap remeh ternyata bisa menjadi "pintu terbuka" bagi siapa saja yang tahu cara mencarinya.

Terima kasih kepada Helium Security by CyberAcademy atas tantangannya yang luar biasa. Sampai jumpa di writeup tantangan berikutnya. Tetap haus akan ilmu, tetap etis, dan mari kita bangun internet yang lebih aman bersama-sama.

Posting Komentar

Posting Komentar