[ImaginaryCTF 2021] – Roos World

Pada challenge ini, kita diberikan sebuah website, yaitu https://roos-world.chal.imaginaryctf.org/. Berikut tampilan websitenya.

Tampilan website dari challenge Roos World

Hmm, dari kata-kata yang diberikan, kita bisa langsung melakukan ‘inspect’ pada web ini. Langsung saja kita view page source.

View page source dari web https://roos-world.chal.imaginaryctf.org/

Ternyata ada JSFuck disini. JSFuck adalah salah satu Esoteric Programming Language. Esoteric Programming Language, atau yang biasa disebut dengan Esolang, adalah bahasa pemrograman yang di design untuk bereksperimen, atau juga bisa digunakan untuk hanya sekedar lelucon. Contoh Esolang lainnya yang mungkin lebih sering terdengar adalah Brainfuck.

JSFuck sendiri seperti namanya dibuat dari bahasa pemrograman Javascript, tetapi hanya menggunakan 6 karakter, yaitu + ! ( ) [ ]. Dalam penggunaannya, JSFuck menggunakan logic-logic yang ada di javascript. Misal kita ingin melakukan alert(‘Hello World!’), untuk memunculkan huruf ‘a’ dari kata ‘alert’ itu sendiri sangat kompleks.

  1. "a": from string "false", second character (index 1 counting from 0)
  2. "false"[1]"false" can be made from false+[], i.e. the boolean constant false plus an empty array
  3. (false+[])[1]: we write false as ![] (negation applied to an empty array)
  4. (![]+[])[1]: 1 is a number, we can write it as +true
  5. (![]+[])[+true]: since false is ![], true is !![]
  6. (![]+[])[+!![]]: ini adalah karakter ‘a’

Credit : https://esolangs.org/wiki/JSFuck

Oke, karena kita sudah tahu kalau ini adalah JSFuck, langsung saja kita terjemahkan.

Hasil terjemahan JSFuck

Kita mendapatkan suatu syntax javascript, yaitu

console.log(atob("aWN0ZnsxbnNwM2N0MHJfcjAwX2cwZXNfdGgwbmt9"));

Atob dalam javascript adalah syntax yang digunakan untuk mendecode string berbentuk base-64.
Console.log adalah function yang dapat mengeluarkan message ke web console.

Jadi, karena ada function console.log, kita bisa langsung melihat hasilnya di Inspect Element -> Console.

ictf{1nsp3ct0r_r00_g0es_th0nk}

Leave a Reply

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