f200 – Number π

Home / Wiki / f200 – Number π

f200 – Number π

> ASIS CTF > ASIS CTF Quals 2015 > f200 - Number π

Description

Find the flag in this file.

Solução

Conseguimos matar esse challenge após o CTF, visto que só 3 times conseguiram resolver durante a competição, e não foram lançados write-ups do mesmo. Pedimos uma dica no canal do ASIS, e alguém falou:

Com essa dica, pesquisamos sobre o pifs e achamos o link do projeto no github: https://github.com/philipl/pifs. Conforme as palavras (irônicas) do autor: “πfs is a revolutionary new file system that, instead of wasting space storing your data on your hard drive, stores your data in π! You’ll never run out of space again – π holds every file that could possibly exist! They said 100% compression was impossible? You’re looking at it!

Olhando atentamente o png que foi disponibilizado no challenge, podemos ver vários 0s e 1s no meio da imagem, mas como ela está com transparência, fica de difícil visualização. Olhando com a tool stegsolve, fica mais claro:

bits-pi

Extraindo eles, temos:

Após criarmos um arquivo de teste do pifs para entendermos seu funcionamento, tivemos certeza de que se tratava do mesmo. O pifs calcula o pi diretamente na base hexadecimal (http://www.wolframalpha.com/input/?i=pi+in+hexadecimal), então ele pega 2 digitos hexadecimais de PI começando na posição dada por um short, por isso 2 bytes da pifs são usados para representar 1 do arquivo original, sendo que um short ocupa 2 bytes. Sabendo isso, revertemos os bits para a flag:

Criamos o arquivo gera_metadata.py:

E executamos:

Flag

ASIS{4716b435ce8ddd6ede25a2926d0c8d42}

Criador por

CTF-BR Team

 

Recent Posts