[MDT 4.0 Final] – Bubur Connoisseur

Diberikan source code seperti dibawah :

Untuk mendapatkan flag, kita perlu set sekte menjadi diblender. Akan tetapi, kita tidak dapat langsung mengsetnya di input, karena terdapat validasi assert. Disitu kita bisa mengirim pesan sesuai kebutuhan, dan potong ciphertext sesuai kebutuhan. Berikut adalah step by step cara pengerjaannya :

  1. Masukkin aaaaaaa di inputan nama, diaduk di inputan sekte, dan berikan rating 5. Ambil ciphertext sebanyak ciphertext[0:64] (dalam hex), kita akan dapat bagian JSON berupa {“nama”: “aaaaaaa”, “sekte”: “di
  2. Masukkin aaaaaablender di inputan nama, diaduk di inputan sekte, dan berikan rating 5. Ambil ciphertext sebanyak ciphertext[32:64] (dalam hex), kita akan dapat bagian JSON berupa blender”, “sekte 
  3. Masukkin aaaaaaaaaaaaaaaaaaaaaa di inputan nama, diaduk di inputan sekte, dan berikan rating 5. Ambil ciphertext sebanyak ciphertext[32:64] (dalam hex), kita akan dapat bagian JSON berupa aaaaaaaaaaaaaaaa
  4. Masukkin aaaaaablender di inputan nama, diaduk di inputan sekte, dan berikan rating 5. Ambil ciphertext sebanyak ciphertext[64:] (dalam hex), kita akan dapat bagian JSON berupa “: “diaduk”, “alasan”: “semua rasa tercampur dengan sempurna”, “rating”: 5} beserta padding yang tidak saya ketahui nilainya

Kalau kita menggambungkan ciphertext a + b + c +d, maka kita akan dapat plaintext {“nama”: “aaaaaaa”, “sekte”: “diblender”, “sekteaaaaaaaaaaaaaaaa”: “diaduk”, “alasan”: “semua rasa tercampur dengan sempurna”, “rating”: 5}. Disitu karena nanti alasan akan diset ulang berdasarkan nilai dari sekte, maka kita bisa mendapatkan flag. Berikut solver scriptnya :

Jalanin script diatas dan dapat flagnya :

Leave a Reply

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