IT Security Enthusiast • Bug Hunter • Penetration Tester

Write-up TJCTF – File Viewer

W

Description

TJCTF adalah platform ctf internasional bertipe Jeopardy yang beralamat di tjctf.org, dengan waktu pengerjaan 4 hari pada tanggal 09 May 2020, 00:01 UTC hingga 10 May 2020, 23:59 UTC. Nah menurut yang ditulis CTFtime.org itu begini:

TJCTF is a Capture the Flag (CTF) competition hosted by TJHSST’s Computer Security Club. It is an online, jeopardy-style competition targeted at high schoolers interested in Computer Science and Cybersecurity. Participants may compete on a team of up to 5 people, and will solve problems in categories such as Binary Exploitation, Reverse Engineering, Web Exploitation, Forensics, and Cryptography in order to gain points. The eligible teams with the most points will win prizes at the end of the competition. Anyone is allowed to compete, but only high school teams in the United States are eligible for prizes.

*FYI event CTF ini pernah juga saya kerjakan saat masih aktif-aktifnya di kampus bersama tim Tenesys, dan sudah didokumentasikan di halaman blogspot berikut, http://tenesys.blogspot.com/2018/08/writeups-tjctf-2018.html sambil bernostalgia dikit kok pingin ngerjain lagi di tahun ini h3h3.

Steps to Reproduce

  • Akses ke halaman https://file_viewer.tjctf.org/ dimana soal berada (kalau masih aktif).
  • Halaman yang terlihat akan sangat simpel, dengan menampilkan pesan bahwa hanya beberapa file saja yang bisa di akses seperti berikut:
Tampilan halaman soal
  • Hmm. Oke kita coba buka salah satu file bernama apple.txt dan coba perhatikan pada bagian parameter di address bar browser tercjinta.
Tampilan setelah melakukan akses ke file apple.txt
  • Oke. Celah yang sangat memungkinkan untuk di eksploitasi adalah LFI (Local File Inclusion) yang mana kita bisa melakukan Directory Traversal, gampang nya bilang itu kita bisa mengakses file-file tertentu didalam server tersebut. Untuk deskripsi lengkap, silahkan akses halaman milik acunetix.com.
  • Untuk memverifikasi apakah benar endpoint memiliki celah LFI maka kita bisa lakukan test dengan membaca salah satu file didalam direktori lokal server tersebut yaitu /etc/passwd.
Cek file didalam direktori lokal pada server yaitu /etc/passwd
  • Yak! mantap sekali file berhasil dibaca tapi sepertinya tidak ada hal menarik didalam nya karena merujuk deskripsi task yaitu:

The flag is in one directory somewhere on the server, all you have to do is find it… Oh wait. You don’t have a shell, do you?

  • Hal pertama yang langsung nyangkut di kepala adalah penggunaan PHP Wrappers salah satunya adalah php://input yang memungkinkan untuk melakukan Remote Code Execution menggunakan method POST.
  • Untuk mengirim request nya saya akan menggunakan Web Developer Tools milik browser tercjinta 🙂 So, klik-kanan trus Inspect Element.
  • Beberapa poin penting, saya menambahkan PHP Wrappers pada parameter ?file=php://input&cmd=ls dengan request body berupa shellcode <?php echo shell_exec($_GET[‘cmd’]); ?> dan kirim menggunakan method POST.
Kirim request dengan method POST menggunakan Web Developer Tools (Inspect Element, tab Network)
  • Dari hasil respon berikut, RCE berhasil dilakukan. Kita coba lihat dari sisi page source (cari aman kalau-kalau flag ditaro di dalam tag comment), lalu menampilkan beberapa file lain termasuk direktori yang sepertinya legit untuk di cek yaitu i_wonder_whats_in_here.
  • Selanjutnya mari cek isi dari direktori i_wonder_whats_in_here (tinggal edit command pada parameter ?file=php://input&cmd=ls i_wonder_whats_in_here).
  • Aahhh piling gud lakasud, kita coba cek isi file tersebut.
  • Flag berhasil didapat didalam tag comment seperti yang sudah diduga, yaitu:

tjctf{n1c3_j0b_with_lf1_2_rc3}

  • Sebenarnya kalau mau lebih simpel, ada cara lain untuk melakukan RCE ini pada LFI, yaitu dengan menggunakan tool LFISuite. Kita tinggal memasukkan url yang vulnerable maka selanjutnya tool akan melanjutkan eksploitasi dengan tampilan yang lebih interaktif.

#ctf #jeopardy #ngehek #tjctf #realcase #bahaya #gakmainmain #oraRCEoraUWU

Add comment

IT Security Enthusiast • Bug Hunter • Penetration Tester