Skip to content

[Bug Bounty Playground] Writeup CTF: NovaEnergy

NovaEnergy
NovaEnergy

Pendahuluan

NovaEnergy adalah tantangan CTF kategori Web dengan tingkat kesulitan easy dari Bug Bounty CTF Playground.

Berikut adalah deskripsi dari tantangan ini:

NovaEnergy is a internal web application used for file sharing system. This site can only be accessed by employee of NovaEnergy company. You’re tasked to hunt for any vulnerabilities that led to any breaches in their site.

📝 Related Bug Bounty Reports

Bug Report #1 - Bypass Email verification
Bug Report #2 - Bypass Email verification in Mozilla

Analisa Awal

Dari deskripsi tantangan, diketahui bahwa fokus utama adalah mem-bypass proses verifikasi email, kemungkinan melalui information disclosure di endpoint tertentu.

Sebagai seorang penetration tester, saya memulai dengan melakukan pemeriksaan cepat untuk memahami gambaran umum dari aplikasi target.

1. Melihat Aplikasi

Tampilan Aplikasi NovaEnergy
Tampilan Aplikasi NovaEnergy

Tersedia fitur Login dan Register.

2. Registrasi Akun

Saat mencoba mendaftar dengan email acak, aplikasi hanya menerima domain @novaenergy.com.

Registrasi Wajib Menggunakan Email @novaenergy.com
Registrasi Wajib Menggunakan Email @novaenergy.com

Saya mendaftarkan akun dengan email [email protected], dan aplikasi meminta verifikasi email.

Aplikasi Meminta Verifikasi Email
Aplikasi Meminta Verifikasi Email

3. Login

Jika mencoba login sebelum email diverifikasi, aplikasi akan menampilkan pesan:

Inactive user

Akun Tidak Aktif Jika Belum Verifikasi
Akun Tidak Aktif Jika Belum Verifikasi

Enumerasi

1. Fuzzing File & Direktori

Karena halaman utama tidak banyak memberikan informasi, saya melakukan fuzzing menggunakan dirsearch:

Terminal
dirsearch -u http://94.237.50.221:38309/
Fuzzing Menggunakan Dirsearch
Fuzzing Menggunakan Dirsearch

Ditemukan dokumentasi API menggunakan Swagger UI, yang menampilkan daftar endpoint yang tersedia pada aplikasi web ini.

http://94.237.50.221:38309/api/docs

2. Mempelajari Swagger UI

Setelah memeriksa setiap endpoint, saya menemukan hal menarik di:

POST /userDetails

Endpoint ini mengembalikan data user, termasuk token verifikasi (verifyToken).

Respons /userDetails Menampilkan Data Token Verifikasi
Respons /userDetails Menampilkan Data Token Verifikasi

Eksploitasi Kerentanan

1. Mendapatkan Token Verifikasi

Saya mengirimkan request ke /userDetails untuk akun [email protected]. Hasilnya, saya memperoleh token:

342633e3-1249-479b-97d7-e75dcd2e732a
Mendapatkan Token Verifikasi
Mendapatkan Token Verifikasi

2. Verifikasi Email

Dengan token di atas, saya melakukan verifikasi email melalui endpoint:

POST /api/email-verify
Verifikasi Email
Verifikasi Email

Verifikasi berhasil, dan akun aktif. Saya pun berhasil login ke dalam aplikasi.

3. Mendapatkan Flag

Setelah login, saya menemukan file flag.txt.

Berhasil Login dan Terdapat File flag.txt
Berhasil Login dan Terdapat File flag.txt

Isinya adalah flag:

HTB{g00d_j0b_r3g1str4ti0n_byp4s5_1156b7fe6817ba9774263ca604f1a15a}
Isi flag.txt
Isi flag.txt

Penutup

Itulah cara menyelesaikan tantangan NovaEnergy dari Bug Bounty CTF Playground.

Dari tantangan ini, kita belajar pentingnya memperhatikan setiap respons dari aplikasi. Information disclosure yang muncul bisa dimanfaatkan untuk eksploitasi lebih lanjut.

Semoga bermanfaat!


[Bug Bounty Playground] Writeup CTF: Criticalops