0x00 IntroDalam soal kali ini, kita diberikan link ke sebuah website dan source file dari website tersebut.
0x01 Check UpBerdasarkan deskripsi, aplikasi ini merupakan aplikasi Sistem Deteksi Penyakit.
Lalu, terdapat form yang digunakan untuk melakukan pendeteksian penyakit berdasarkan gejala yang diinput
0x02 Source ExtractionPada 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 DumpSelanjutnya kita import file dump dengan menggunakan platform neo4j AuraDB
Setelah berhasil diimport, kita buka databasenya
Terlihat bahwa terdapat 4 Node Utama:
0x04 Cypher the NodesHmm... 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 NodeSetelah 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 SuicideCara saya untuk dapat menerima diagnosa penyakit "Death" adalah dengan menginput semua gejala yang ada dalam form.
Dan akhirnya kita menderita "Death" :)
0x07 Inspect the FlagLakukan Inspect Element dan temukan Flagnya
~~ Voilaa... Flagnya adalah ctfzone{C4n_Th3_D34D_Pl4y_CTF?}