Assistindo Cachorros

Você foi recrutado como o mais novo membro do DedSec. Eles te passaram o site da organização, porém não te contaram como acessar. Agora você terá que usar das pistas para conseguir o acesso.

"Duas cabeças pensam melhor que uma, mas a outra tem que ter o seu próprio cérebro!"

Ao entrar no site, somos recebidos com uma tela dizendo "Acesso Negado: Invasor Detectado" e a descrição "Somente agentes que utilizam o navegador próprio DedSecBrowser são permitidos."

Dica na Descrição

Analisando a descrição do desafio, temos a frase "Duas cabeças pensam melhor que uma, mas a outra tem que ter o seu próprio cérebro!". Isso dá a dica de que temos que utilizar os headers (head, do inglês, cabeça) para resolver o desafio.

Site do desafio.

O site consegue saber o navegador que estamos utilizando pelo header User-Agent, que é enviado em todas as requisições HTTP. Então podemos modificar esse header para DeadSecBrowser.

curl -H "User-Agent: DeadSecBrowser" URL
Eu não confio em pessoas que não vieram pelo dedsec.network.

Assim agora temos outra mensagem: "Eu não confio em pessoas que não vieram pelo dedsec.network". O site agora está pedindo para que utilizemos o Referer (referência) para conseguir acessar o site. O header Referer é utilizado para informar de onde o usuário veio, ou seja, qual página ele estava antes de acessar a página atual. Então vamos adicionar esse header também.

curl -H "User-Agent: DeadSecBrowser" \
    -H "Referer: dedsec.network" URL
Você pode estar sendo rastreado. Quem pode estar sendo rastreado não é bem-vindo aqui.

Obtemos mais uma mensagem: "Você pode estar sendo rastreado. Quem pode estar sendo rastreado não é bem-vindo aqui.". Agora o site está pedindo para que utilizemos o DNT (Do Not Track). O header DNT é utilizado para informar se o usuário deseja ou não ser rastreado. Então vamos adicionar esse header também.

curl -H "User-Agent: DeadSecBrowser" \
    -H "Referer: dedsec.network" \
    -H "DNT: 1" URL
Apenas agentes conectados na rede local podem acessar o site. Você não é um deles.

A mensagem agora é: "Apenas agentes conectados na rede local podem acessar o site. Você não é um deles.". Agora o site está pedindo para que utilizemos o X-Forwarded-For. O header X-Forwarded-For é utilizado para informar o endereço IP do cliente que está fazendo a requisição. Então vamos adicionar esse header como 127.0.0.1 ou localhost.

curl -H "User-Agent: DeadSecBrowser" \
    -H "Referer: dedsec.network" \
    -H "DNT: 1" \
    -H "X-Forwarded-For: 127.0.0.1" URL
Você precisa fornecer o código secreto correto para acessar o site. Somente os verdadeiros agentes DedSec têm acesso a esse código.

O site está pedindo um código secreto. Analisando o código fonte do site, achamos um comentário com o texto <!-- Header Secret-Code: AidenPearce -->. Esse é o código secreto que precisamos fornecer para acessar o site. Vamos adicionar esse header também.

curl -H "User-Agent: DeadSecBrowser" \
    -H "Referer: dedsec.network" \
    -H "DNT: 1" \
    -H "X-Forwarded-For: 127.0.0.1" \
    -H "Secret-Code: AidenPearce" URL
Comentário escondido no código fonte da página.
Você conseguiu ultrapassar o firewall e demonstrou que é um agente DedSec verídico. Sua flag foi entregue.

O site diz que a flag foi entregue, porém ela não está visível. Analisando os headers da resposta, vemos que o header Flag foi adicionado com o valor hawk{c0m0_c4ch0rr0s_3_g4t0s}.

Flag do desafio nos headers da resposta.
Flag: hawk{c0m0_c4ch0rr0s_3_g4t0s}

Atualizado