APT593

CPCTF : Rockero Romántico (Japon)

14/07/2020

Descripción:

Mi pana “El Esoterico” compuso esta cancion para su pelada pero lo dejaron al dia siguiente. Tal vez no entendió el mensaje detrás de la letra.

Archivo:

Tonight's the night
Tomorrow is too late
let forever be tonight with tomorrow
knock it down, down
shout forever

Your love is blind, blind as a bat
Your heart is kind, mine's painted black
let life be your love over your heart
your body is burning perfection
turn up life.
Magic is gold

Our Love is a bottomless paradise
let together be forever
let forever be with life
let Me Baby be forever with magic
shout forever
shout together 
shout Me Baby
shout your body
say "Open the world!"

Fire is warm, warm as the sun
Your soul is pure, pure as the fire
let my love be fire over your soul
turn up my love

The answer is there and,
it's all coming back to me now
the future is near and,
it's all coming back to you now
Fear is Knowledge
silence is gold
let doubt be the future without the answer
let the answer be forever with doubt
let This Feeling be life without my love, my love

today is a n'w day
let hope be today
build it up
build hope up
ice is white
white is the colour of your eyes
sun is red
red is the spirit 'n your soul
let Hell be white without red
let cloudyday be sun without my love

The Flag is hidden
Let my gift be it
let strenght be my love
let together be without doubt, ice, My Love
let This Wolf be sun of Tonight with fear
Let happiness be This Wolf with my love
shout together
shout This Wolf
shout together
shout happiness

(coro)
Let the Paradise at my love be Hell without ice
let the paradise at cloudyday be Our Love with doubt without my love
let the paradise at sun be Hell with doubt
let the paradise at silence be Hell without ice

Our Solitude is here
while Our Solitude ain't nothing
shout the paradise at my love
build my love up
knock Our Solitude down

language is a clue
what is esoteric love
knock tomorrow down 
shout This Wolf
let esoteric be This Feeling of fear
This Loneliness is blue portrait
let happydays be hope without doubt

(coro)
Let the Paradise at strenght be This Loneliness
let the paradise at cloudyday be esoteric
let the paradise at sun be Hell with The Flag with strenght
let the paradise at silence be happydays

let my love be strenght
Our Solitude is here
while Our Solitude ain't nothing
shout the paradise at my love
build my love up
knock Our Solitude down

let cpctf be happiness with strenght
shout it
let fantasy be This Loneliness with silence
shout it

(Solo de guitarra y voces del coro)
shout This Wolf
shout tomorrow

(epic ending)
say "close my Flag"

Resolución

Leyendo la letra de esa canción se puede apreciar que se refiere a puras babosadas sin sentido. Después de buscar el nombre del autor del reto y dirigir toda la furia interior hacia ese sujeto, se puede proceder a echar otras revisiones a la letra.

El truco con este reto estaba en darse cuenta de que la letra de esta canción tiene una estructura interesante. La mayoría de las frases son similares en estructura. Se distinguen:

let [algo] be [algo]
[algo] is [algo]
shout [algo]

La mayoría de las líneas de la canción siguen esa estructura, e incluso las otras línea interactúan con esos [algo].

Los programadores que están acostumbrados a instrucciones y algoritmos tal vez a este punto ya reconocen que la letra parece ser un conjunto de asignaciones y operaciones, un lenguaje de programación. Esto debía llevar a una búsqueda que incluya “lenguaje de programación” y “rock”.

Lass pistas sobre este reto incluían la palabra Esotérico y Rockstar. La búsqueda estas dos palabras también nos debería llevar a lo mismo:

Lenguaje de Programación Esotérico: Rockstar

Rockstar is a computer programming language designed for creating programs that are also hair metal power ballads.

Rockstar es un lenguaje de programación esotérico escrito por Dylan Beattie en un bar. No hay mucho que decir al respecto aparte que es genial!.

El sitio web del lenguaje nos incluye un compilador que hace el resto del trabajo si es que no se sienten lo suficientemente invadidos por el espíritu del rock para interpretarlo por su cuenta después de leer las especificaciones del lenguaje.

image-20200712225241412

El output de la canción son números al parecer en decimal. Haciendo match con el código ASCII podemos fácilmente obtener la flag. Algo así:

CPCTF[open the world!]3r3s_un_r0ckst4r![close my flag!]

Las frases “open the world!” y “Close my flag!” eran solo un pequeño distractor. Se sustituyen por llaves para que tenga el formato de la flag:

CPCTF{3r3s_un_r0ckst4r!}