Skip to content

Instantly share code, notes, and snippets.

@ninj4c0d3r
Last active December 21, 2017 11:59
Show Gist options
  • Save ninj4c0d3r/b803efaadfd4a32796982e182e207414 to your computer and use it in GitHub Desktop.
Save ninj4c0d3r/b803efaadfd4a32796982e182e207414 to your computer and use it in GitHub Desktop.
HueCTF - Quack [Web150] Write-up

HueCTF - Quack [Write-Up]

https://ctf.devechio.com/flag.php?evento=24

A0-Logo

Introdução

Ao abrir o link do desafio obtemos uma página com um vídeo do SimpsonWave tocando de fundo e um espaço para pesquisar, também pode se notar no titulo da página "PatoPatoVai" que traduzindo para o inglês temos DuckDuckGo que é um motor de busca muito conhecido na internet.

A1 - pagina

A2 - codigofonte

Reconhecimento

Como a maioria dos desafios que envolvem WEB possuem alguma dica/segredo no robots.txt vamos olhar o que tem no robots.txt:

A3 - robots

Achamos um arquivo chamado flag suspeito, ao entrar no arquivo temos a seguinte mensagem:

{"status":"failed","msg":"IP não faz parte da rede interna"}

Parece que ele aceita apenas quem faz parte da sua rede interna, ou seja: quem tiver o ip da rede interna do desafio pode vizualiar a suposta flag.

Exploração

Voltando ao motor de busca vamos entender um pouco de seu funcionamento. Ao pesquisa qualquer coisa no motor de busca ele abre uma janela com a seguinte url: http://159.89.47.242/search/***sua pesquisa***.

A4 - motor

Ele tira uma screenshot da seguinte url https://duckduckgo.com/***sua pesquisa*** e faz o upload no servidor do desafio.

No código fonte da página a gente consegue vizualizar uma parte do script: <script> setTimeout(function() { document.getElementById("page").src="http://159.89.47.242/pics/4qllo5bq4tahxmufh8uzw9igu2moef69.png"; }, 10000); </script>

Ele salva a imagem da busca em /pics/ e depois manda a imagem na página.

  • O motor de busca funciona basicamente assim: Você pesquisa > o motor de busca acessa o DuckDuckGo com a sua pesquisa > Ele tira uma screenshot da página de pesquisa > Salva no site do desafio > E por fim ele carrega a imagem na página de busca.

O que podemos fazer é estar procurando por falhas ou tricks no DuckDuckGo, eu pesquisei por BugBounty no DuckDuckGo e então em um dos links encontrei uma poc de Open Redirection no DuckDuckGo:

poc

Essa falha no caso utiliza o y.js que está presente no DuckDuckGo para redirecionar para páginas que o usuario colocar, demonstração:

Payload: y.js?redir_token=k6BmVRzCEuHaPwUZ-LUDdqOIw818MTUxMzgyNTY1MEAxNTEzNzM5MjUw&u3=https://google.com

Para funcionar temos que encodar o payload em URL ENCODE

Payload Encodado: y.js%3Fredir_token%3Dk6BmVRzCEuHaPwUZ-LUDdqOIw818MTUxMzgyNTY1MEAxNTEzNzM5MjUw%26u3%3Dhttps%3A%2F%2Fgoogle.com

Agora testamos no nosso desafio:

A5 - redirect

E pronto, redirecionado com sucesso para o Google, agora para pegar a flag basta por o link do desafio com o /flag.

A6 - flag

Flag: Huebr{P4t4_4Qu1_Pa74_4c0Lá}

@diofeher
Copy link

que foda! parabéns

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment