Writeup CTF Authentication Key ctfs.me

Posted on Posted in Pencerdasan

Pada writeup kali ini, saya akan memberikan penyelesaian dari soal CTF di link diatas sekaligus memberikan tutorial singkat mengenai MD5 Collision.

Link : https://ctfs.me/web/authentication/
Kategori : Web

Pada challange kali ini kita diminta untuk melakukan login menggunakan sebuah authentication key yaitu login.key. Kita bisa mendapatkan login.key ini dari https://ctfs.me/web/authentication/login.key

Kemudian, saya coba melakukan login dengan key tersebut.

Tetapi, inilah hasilnya.

anjay

Checksum Collision

Bila kita ingin melakukan “operasi perbandingan” terhadap 2 buah file, maka metode yang digunakan adalah check sum. Intinya, metode check sum ini mengkonversi bit – bit di dalam sebuah file menjadi sebuah string HEX yang memiliki ukuran tertentu tergantung metode check sum yang dipakai. Metode check sum yang sering dipakai ada beberapa, yaitu MD5, SHA-256, SHA-1 dan lain – lain (silahkan googling sendiri).

Disini saya berasumsi (murni menebak sebenarnya :/ ) bahwa metode yang digunakan adalah MD5 (karena metode ini paling sering digunakan dalam soal – soal CTF dan penerapan sesungguhnya). Namun, sepertinya metode authentikasi website ini tak hanya sekedar membandingkan checksum. Karena bila hanya sekedar membandingkan hasil checksum MD5, sudah pasti saya bisa lolos. Bedasarkan kalimat yang ditunjukkan, saya menarik kesimpulan bahwa authentikasi dilakukan dengan 2 tahap.

  1. Melakukan pembandingan check sum file yang kita upload dan hasil checksum file yang terdapat di server.
  2. Kemudian, isi file dibaca. Bila isinya sama dengan file yang terdapat di server (seperti yang terjadi dengan kasus saya), maka login ditolak dan tampilkan kalimat tersebut. Jika berbeda, maka login sukses.

Bagaimana cara kita melakukannya?

Kita dapat memanfaatkan kelemahan MD5 check sum, yaitu dengan melakukan collision. Referensi writeup yang saya gunakan adalah MD5 Collision .

Intinya, kita akan membuat 2 buah file key yang berbeda namun menghasilkan MD5 check sum yang sama persis dengan menggunakan contoh yang terdapat di referensi saya tadi.

hash2

Pertama, saya kopi file login.key asli menjadi kopas.key. Kemudian, saya menggunakan Hexed It untuk melakukan hex editing. Bedasarkan gambar petunjuk tersebut (saya juga nggak terlalu paham bagaimana cara sebenarnya untuk mengganti hexnya), maka perubahan dilakukan pada karakter hex yang memiliki interval ke-20, 46, 60, 84, 110, 124 dari 2 hex awal, maka yang kita ganti adalah 68, 5F, 89, 7E, F5, 1E. Cara menggantinya adalah dengan mengambil karakter hex yang didepan (sebelah kiri) lalu ditambah 8.

awal
Nilai hex login.key
hasil
Nilai hex kopas.key (login.key yang sudah dirubah)

Bila sudah, maka kita lakukan export file dan coba lakukan pengecekan MD5 sum nya.

collision

Bila hasil MD5 nya sama, berarti kita telah sukses melakukan MD5 collision. Sekarang saatnya pembuktian, upload file yang sudah dirubah hexnya tadi ke halaman login dan anda bisa login dengan sukses.

sukses

Leave a Reply

Your email address will not be published. Required fields are marked *