Tokyo Westerns CTF - SimpleAuth Writeup

Essa challenge quando peguei ela sernova coindataflow, eu não sabia nem a sua descrição

, mas eu gosto muito desse tipo de desafio do qual nos mostra o código fonte e não foi tão demorado para matar essa challenge.

Analisando por cima o código, podemos ver que ele recebe os parametros via $_SERVER['QUERY_STRING'] e cria uma variavel action para separar aquilo que vem do parse_str()

Um pouco mais para baixo, temos algumas verificações sendo feitas, enviando um get com o valor de "auth", entramos dentro da condição que precisamos para resolver o desafio.

A partir deste momento, temos 3 "if's", dos quais na verdade não servem para nada, porém, temos a varivel $hashed_password que é usada no ultimo if para verificar o seu valor e nos entregar a flag!

A real intenção do desafio era explorar o parse_str()

Fazendo um pequeno teste, podemos ver que usando o parse_str() para pegar um valor já antes setado, fará com que este valor seja sobreescrito

  $var = 'xxxxx';
  parse_str($_SERVER['QUERY_STRING']);
  echo $var;
click here

Enviando via GET o valor, é possivel notar que acontece a sobreescrita dos valores, então, precisamos apenas fazer isso no desafio.