Acredito que esse desafio era o primeiro ou segundo da categoria Web no Pragyan. Não foi nem um pouco complexo porque, se fosse, provavelmente eu não estaria fazendo um write up já que ainda sou mais noob nos challs de web do que nos que não me considero tão noob assim.
A descrição do bagulho era a seguinte:
There was a miscellaneous platform being built for various purposes, but it had to be shelved halfway through. Wanna check it out? Here is the link: http://128.199.224.175:25000/ Note: Use your Pragyan CTF credentials to log in.
Eles disseram que havia uma plataforma criada para propósitos variados mas que havia sido arquivada no meio do seu desenvolvimento e então passam o link para darmos uma olhada. Também disseram que se usasse as credenciais do próprio ctf para poder logar.
A cara inicial do site era essa:
Um form de autenticação aparentemente normal, se não contarmos com a checkbox que diz “Sou administrador”.
Iniciei meu Burp e configurei o mesmo e meu firefox para poder interceptar o tráfego http e analisar essa tal plataforma em busca de flags.
Tentei logar usando valores aleatórios e uns óbvios sql injections. Nada funcionou e nada parecia fora do lugar nas requisições. Então usei minhas credenciais para o CTF e loguei sem marcar a caixinha “I’m admin”.
E essa era a tela de login bem sucedido.
A mensagem dizia que o painel de controle de usuários da plataforma estava sendo desenvolvido e mandava voltar mais tarde.
Dei uma sacada no código fonte da página, nas requisições pelo burp e nada vi fora do ordinário.
Sem demora, voltei a página de login, repeti minhas credenciais do ctf mas dessa vez marquei a checkbox “I’m admin”.
A única mudança na requisição POST feita era o parâmetro is_admin=on. Nada que realmente saltasse aos olhos.
Interceptando tudo pelo Burp, vi uma requisição GET inocente sendo feita para a página /admin.php, mas não achei anormal.
Após dar um ‘Forward’ nessa requisição, vi que era feita outra logo em seguida para buscar a página /unavailable.php.
Tirei altos prints para deixar a porra do post bonito. E agora vou usar todos mesmo.
E no firefox, a mensagem que surgiu foi a seguinte:
Que fala quase a mesma merda da primeira mensagem, só que dessa vez direcionada ao admin.
Mas e aquela GET para /admin.php? O que tinha lá? Pelo visto fui redirecionado direto para unavailable.php. Então ela tem algo a esconder.
E tinha mesmo. O Burp é uma mão na roda para challs de Web e estou me habituando a usa-lo de forma mais completa. Indo além da tab ‘Proxy’. Foi assim que, verificando o sitemap montado pelo programa, pude ver a página admin.php e a requisição que fiz para a mesma. Assim como a resposta que ela deu:
Ela me deu a flag! O único motivo de não conseguir ver ao tentar acessar /admin.php é que a resposta para a requisição usa o código 302 do HTTP, que diz ao navegador: “Hey, esta página foi movida temporariamente desse local para /unavailable.php”. E aí o navegador segue alegremente para a página que foi indicada.
tags: Sem Categoria, web,