Matasano Crypto Challenge 13: ECB Cut n Paste

Pada tulisan sebelumnya dibahas mengenai dekripsi ECB sederhana. Untuk tulisan hari ini akan dibahas mengenai ECB Cut n Paste.

Challenge

Tulis sebuah k=v parsing routine, jika digunakan sebagai cookie yang terstruktur. The routine harus nampak sebagai berikut:

foo=bar&baz=qux&zap=zazzle

Dan harus menghasilkan seperti ini:

{
  foo: ‘bar’,
  baz: ‘qux’,
  zap: ‘zazzle’
}

(Anda tahu, object oriented; Matasano tidak peduli jika anda mengkonversinya ke JSON)

Sekarang tulis sebuah fungsi yang meng-enkoding sebuah profil pengguna dengan format, yang diberikan sebuah email address. Anda harus membuatnya seperti ini:

profile_for(“foo@bar.com”)

Dan harus menghasilkan seperti ini:

{
  email: ‘foo@bar.com’,
  uid: 10,
  role: ‘user’
}

Dan lakukan enkoding agar menjadi seperti ini:

email=foo@bar.com&uid=10&role=user

Fungsi “profile_for” anda seharusnya tidak membolehkan enkoding metakarakter seperti (& dan =). Terserah cara yang anda akan lakukan intinya adalah jangan biarkan pengguna mengatur emailnya ke “foo@bar.com&role=admin”.

Sekarang, buatlah kunci AES acak, kemudian:
A. Enkripsi pengguna profil yang ter-enkoding dengan kunci;
B. Dekripsi pengguna profil yang ter-enkoding dan parse itu.

Gunakan hanya masukkan yang ada dalam fungsi profile_for() (seperti oracle untuk menghasil ciphertext yang valid) dan ciphertext itu sendiri, buatlah juga profil role=admin.

Solved

Ini dia penyelesainnya.

ecb_cut_n_paste

Mengapa hanya share screenshot saja? Alasannya bisa anda lihat pada tulisan ikhtisar MCC sebelumnya.

Sekian tulisan hari ini, semoga bermanfaat.

Keep Fun Coding 😀

[1] Unknown. (????). ECB Cut n Paste. Tersedia: cryptopals.com/sets/2/challenges/13/. [16 Januari 2015].

Advertisements

3 thoughts on “Matasano Crypto Challenge 13: ECB Cut n Paste

  1. You were close there but not quite right. An extra bit is needed to complete the full answer, but I won’t give it away here 😉 other than to say the duplicate uid and role can be ‘excluded’
    My solution yields exactly this:
    email=iNinja@aj.net&uid=10&role=admin
    {
    email : iNinja@aj.net
    uid : 10
    role : admin
    }

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s