w400 – Question 4

Home / Wiki / w400 – Question 4

w400 – Question 4

> nullcon HackIM > nullcon HackIM 2015 > w400 - Question 4

Buy Nullcon Pass For Free.

Flag format: flag{flag}
nullcon.html

Captura de Tela 2015-01-11 às 14.46.16

Solução

Ok , a gente tem que comprar um entrada de graça . Se a gente olhar pro código fonte da página :

 

 

Quando a gente clica em “Buy” ele envia pro “checkout.php” :

Já que %7C == | a “msg” fica “Nullcon2015|corporate|10999” . Então a idéia é fazer que o terceiro item seja “|0” .
O problema é que ele checa se o checksum que você tem ( que é um sha256 ) é igual a hash da sua msg mais uma key que ele tem.

Dando uma lida em write-ups de CTFs passados ( github.com/ctfs/write-ups-2014/tree/master/plaid-ctf-2014/mtpox ) eu percebi que esse tipo de checagem do checksum , onde você tem a hash e parte da string que a gerou , é suscetível a ataques de Length extension . É um assunto complexo e precisa ter um bom background de criptografia , aqui explica bem direitinho ( en.wikipedia.org/wiki/Padding_(cryptography) | blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks ) , mas basicamente , alguns tipos de hashes se utilizam de padding para certificar que o tamanho da string que será usada é multiplo do tamanho do bloco da cifra ( http://www.dei.isep.ipp.pt/~andre/documentos/criptografia.html ) e com isso é possível inserir algo a mais na string primária que resultará na mesma hash .

Ok , para fazer o ataque utilize tool HashPump que faz todo o padding automáticamente .

Então nós temos a hash final , parte da string e ‘|0’ que a gente quer colocar no final , além disso eu tive que fazer um brute-force no tamanho da “key” para ele conseguir fazer o padding certo . Ele retornou :

Que é a nova hash e a string que a gente vai injetar . Eu tentei injetar com o Burp o POST , mas por algum motivo ele “encoda” o padding errado e nunca dá certo , então eu fiz um script (:

E a gente consegue a flag (:

Flag

flag{fl@g_*2o15}}

Criado por

Hu3br

Recent Posts