progrez.cloud

Write-Up Dead or Alive [CTFZone 2023]

13 Agustus 2023

0x00 Intro


Dalam soal kali ini, kita diberikan link ke sebuah website dan source file dari website tersebut.



0x01 Check Up


Berdasarkan deskripsi, aplikasi ini merupakan aplikasi Sistem Deteksi Penyakit.



Lalu, terdapat form yang digunakan untuk melakukan pendeteksian penyakit berdasarkan gejala yang diinput




0x02 Source Extraction


Pada source file yang diberikan, kita bisa lihat struktur file seperti berikut



Terdapat file yang cukup menarik, pada file [configure_db.sh] kita tahu bahwa aplikasi ini menggunakan neo4j yang merupakan Graph Database.



Selain itu, kita juga diberikan file hasil dumping [hostpitalgraph.dump]


0x03 Load the Dump


Selanjutnya kita import file dump dengan menggunakan platform neo4j AuraDB


Setelah berhasil diimport, kita buka databasenya



Terlihat bahwa terdapat 4 Node Utama:

  • Disease
  • Flag
  • Product
  • Symptom


0x04 Cypher the Nodes


Hmm... Sepertinya flag yang kita cari disimpan dalam Node Flag


Dan ternyata setelah diperiksa, memang benar



Hanya saja ini merupakan dummy data.


Jadi, sepertinya untuk mencari flag aslinya, kita perlu melakukan injection pada database aslinya


Tapi, bagaimana caranya???


0x05 Another Node


Setelah sekian lama frustrasi, tiba-tiba teringat pada nama challenge "Dead or Alive". Mungkin ini merupakan petunjuk.


Setelah memeriksa ulang semua Node, saya akhirnya menemukan titik terang pada Node Disease



Ternyata, flag dapat ditampilkan jika user menerima diagnosa penyakit "Death".


0x06 Try Suicide


Cara saya untuk dapat menerima diagnosa penyakit "Death" adalah dengan menginput semua gejala yang ada dalam form.



Dan akhirnya kita menderita "Death" :)


0x07 Inspect the Flag


Lakukan Inspect Element dan temukan Flagnya




~~ Voilaa... Flagnya adalah ctfzone{C4n_Th3_D34D_Pl4y_CTF?}