Bug Bounty, Penetration Testing, pentesting, Web Application, writeup

Bugbounty Tips – Improper Access Control pada halaman login

Bugbounty Tips - Improper Access Control pada halaman login

Dalam dunia bug bounty, tidak semua vulnerability harus berupa Remote Code Execution atau SQL Injection untuk mendapatkan validasi dan reward. Terkadang, kelemahan sederhana pada mekanisme authorization frontend juga dapat dianggap sebagai temuan yang valid apabila menyebabkan exposure terhadap internal application behavior.

Melalui platform YesWeHack, saya berhasil mendapatkan reward sebesar $200 setelah menemukan vulnerability berupa improper access control pada sebuah aplikasi registrasi bisnis.

Saat melakukan pengujian keamanan terhadap aplikasi berbasis Single Page Application (SPA), saya menemukan bahwa salah satu route internal frontend masih dapat diakses tanpa autentikasi.

Walaupun pengguna belum login, aplikasi tetap menampilkan beberapa komponen internal seperti:

  • Dashboard layout
  • Navigation sidebar
  • Struktur frontend aplikasi
  • Embedded survey form

Selain itu, terdapat external survey form yang dapat diakses langsung tanpa autentikasi.

Temuan ini dikategorikan sebagai:

Improper Access Control / Missing Frontend Authorization

Analisis Teknis

Dari hasil pengujian, backend API sebenarnya sudah menerapkan authorization dengan benar. Request tanpa session valid tetap menghasilkan response:

401 Unauthorized

Namun pada sisi frontend, route protection tidak diterapkan secara konsisten.

Frontend tetap merender dashboard components meskipun user belum memiliki session valid. Saat dilakukan pengujian menggunakan interception proxy seperti Burp Suite, perubahan response dari:

401 Unauthorized

menjadi:

200 OK

membuat frontend tetap menampilkan komponen internal aplikasi.

Hal ini menunjukkan adanya ketergantungan terhadap client-side response handling tanpa frontend route guard yang memadai.

Proof of Concept (PoC)

1. Akses Route Internal Tanpa Login

Dalam kondisi browser belum login, akses salah satu route internal aplikasi secara langsung.

2. Observe Frontend Behavior

Frontend tetap menampilkan:

  • Sidebar dashboard
  • Navigation menu
  • Layout internal aplikasi
  • Embedded survey form

meskipun user belum terautentikasi.

3. Akses Survey Form

Survey form eksternal dapat diakses secara publik tanpa validasi session.

4. Backend Tetap Aman

Ketika endpoint API diakses langsung tanpa autentikasi, backend tetap mengembalikan:

401 Unauthorized

yang menunjukkan backend authorization masih berjalan dengan benar.

Ancaman dan Risiko

Walaupun tidak ditemukan kebocoran data sensitif, vulnerability ini tetap memiliki dampak keamanan karena dapat menyebabkan:

  • Exposure terhadap internal application structure
  • Disclosure workflow aplikasi
  • Enumerasi route internal
  • Exposure terhadap external resource
  • Membantu attacker dalam tahap reconnaissance

Dalam beberapa kasus, informasi kecil seperti struktur frontend dapat menjadi pijakan awal untuk chaining vulnerability lainnya.

Rekomendasi Perbaikan

Beberapa remediation yang direkomendasikan:

Implement Frontend Route Guards

Seluruh protected route harus melakukan validasi autentikasi sebelum dirender.

Sinkronisasi Authorization Frontend dan Backend

Frontend tidak boleh hanya mengandalkan response handling dari client-side.

Restrict External Resource Access

Survey form atau resource eksternal sebaiknya hanya tersedia untuk user terautentikasi.

Hide Protected Components

Dashboard components dan navigation menu tidak boleh muncul sebelum session diverifikasi.

Temuan ini menjadi pengingat bahwa keamanan frontend tetap merupakan bagian penting dalam pengembangan aplikasi modern, terutama pada arsitektur Single Page Application (SPA).

Walaupun backend telah aman, kelemahan kecil pada sisi frontend authorization tetap dapat menghasilkan information disclosure yang dianggap valid dalam program bug bounty.

Tagged , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *