Marsha

Description

Seseorang berhasil melakukan serangan terhadap ruang chat antara marsha dan pacarnya!!!

Author: AnYujin

nc 103.185.53.181 4254

Kita diberikan sebuah service dan soal.py yang berisikan source code dari service tersebut.

Berikut adalah soal.py yang sudah saya annotate untuk menjelaskan alurnya.

Intinya adalah sebagai berikut:

  • Di awal, kita bisa mengubah parameter โ€œmoduloโ€ atau p dari protokol Diffie-Hellman pada komunikasi ini

  • Kedua pihak (Marsha dan Yujin) akan saling mengirimkan public key, dan menghitung shared secret

  • Dengan shared secret, Marsha mengirim pesan โ€œHalo, kamu apa kabar?โ€. Pesan ini bisa kita ganti.

  • Yujin akan membalas pesan berdasarkan pesan yang dikirimkan. Jika seperti yang di atas (tidak diubah), Yujin akan membalas dengan โ€œAku baik, bentar ya aku tidur dulu...โ€. Selain pesan di atas (kita ubah) maka Yujin akan membalas dengan flag.

  • Awalnya saya mengira bahwa signature-nya juga perlu diatur supaya pesannya verified. Rupanya, di sini kita tidak perlu memperhatikan signature karena pesan akan selalu verified, jadi cukup pesannya saja.

Jadi sudah cukup jelas bahwa tujuan kita adalah mengetahui shared secret mereka berdua supaya bisa mengganti pesan Marsha dengan pesan lain yang bisa didekripsi oleh Yujin.

Celah utama dari protokol Diffie-Hellman adalah serangan discrete log, yang disebabkan oleh pemilihan modulo atau p yang tidak kuat. Pada soal ini, p bisa kita ubah, dan saya memasukkan p yang smooth, artinya p-1 memiliki banyak faktor. Nilai p seperti ini rentan akan serangan discrete log. Berikut adalah kode solver yang saya gunakan.

Flag: TechnoFair11{4Ku_4d4lAH_R4J4_M3ks1Ko_El_M4r5hal3}

Last updated