Natas Web. Passagem da plataforma CTF destinada a explorar vulnerabilidades da Web

imagem

Neste artigo, trataremos da operação de algumas identidades da WEB usando o jogo de guerra Natas como exemplo. Cada nível tem acesso à senha do próximo nível. Todas as senhas também são armazenadas nos arquivos / etc / natas_webpass /. Por exemplo, a senha para natas5 é armazenada no arquivo / etc / natas_webpass / natas5 e é somente leitura para usuários natas4 e natas5.

Informações Organizacionais
Especialmente para aqueles que desejam aprender algo novo e se desenvolver em qualquer uma das áreas de segurança da informação e da informática, escreverei e falarei sobre as seguintes categorias:

  • PWN;
  • criptografia (criptografia);
  • tecnologias de rede (rede);
  • reverso (engenharia reversa);
  • esteganografia (estegano);
  • pesquisa e exploração de vulnerabilidades na WEB.

Além disso, compartilharei minha experiência em análise forense de computadores, análise de malware e firmware, ataques a redes sem fio e redes locais, realização de protestos e explorações por escrito.

Para que você possa descobrir sobre novos artigos, software e outras informações, criei um canal no Telegram e um grupo para discutir quaisquer questões no campo da CID. Além disso, considerarei pessoalmente seus pedidos, perguntas, sugestões e recomendações pessoais e responderei a todos .

Todas as informações são fornecidas apenas para fins educacionais. O autor deste documento não se responsabiliza por nenhum dano causado a alguém como resultado do uso dos conhecimentos e métodos obtidos como resultado do estudo deste documento.

nível 0


Analisamos o código fonte da página e verificamos os comentários.

imagem

Nós encontramos a senha.
Muitas vezes, ao desenvolver sites, os desenvolvedores comentam várias informações auxiliares, incluindo dados de autorização.

nível 1


Analisamos o código-fonte da página novamente, mas um evento do mouse com o botão direito do mouse é atribuído a um evento javascript, que não permite o menu de contexto.

imagem

Para visualizar a página, você pode usar as teclas de atalho do navegador; o evento de pressionar o botão direito do mouse não funcionará.

imagem

Nós encontramos a senha.
Como opção (às vezes prioridade), você pode simplesmente baixar a página inteira e visualizar o código.
wget --http-user=natas1 --http-password=gtVrDuiDfck831PqWsLEZy5gyDz1clto http://natas1.natas.labs.overthewire.org 

imagem

nível 2


Nós olhamos o código fonte da página novamente, observe que a imagem está carregando na página.

imagem

Vamos para o diretório em que a imagem é baixada. Observamos que esse diretório não está indexado e disponível para os usuários.

imagem

Tiramos a senha.

imagem
Para evitar a exibição de arquivos no diretório, as configurações do servidor (neste caso /etc/apche2/httpd.conf) devem proibir a indexação de arquivos. Ou nesse diretório deve estar o arquivo index.html.

nível 3


Nós olhamos para o código fonte da página novamente, não há nada interessante lá. O segundo item após a exibição do código-fonte é a verificação de arquivos e diretórios. Especifique o usuário e a senha para autenticação http como os parâmetros do utilitário dirb.

imagem

O arquivo robots.txt contém uma lista de diretórios e arquivos que não podem ser visualizados pelos robôs dos mecanismos de pesquisa (por exemplo, google e yandex).

imagem

Vamos para o diretório oculto no site, localize o arquivo e escolha a senha.

imagem

imagem
Como analógico, você pode usar o utilitário dirsearch ou burpsuite.

nível 4


O servidor informa de qual página eles foram e diz para qual página ir. Ele pode verificar esses dados apenas no cabeçalho do protocolo HTTP.

imagem

No navegador, selecione a barra de ferramentas → rede → última solicitação e “alterar e enviar”. Você deve alterar o campo Referer - mostra exatamente de onde chegamos.

imagem

Resta pegar a senha.

imagem
Esta ação é burpsuite.

É necessário revisar constantemente quais campos HTTP o servidor da Web está visualizando. Esses são os dados do usuário filtrados mais raramente.

nível 5


O serviço informa que não estamos logados. Ou seja, ele armazena os dados de nossa autorização. O único local em que isso pode ser transmitido é a sessão de cookies.

imagem

Vamos ver os cookies (por conveniência, é melhor instalar extensões no navegador) e alterar o valor do parâmetro logado para 1.

imagem

Recarregue a página e colete a senha.

imagem
Essa vulnerabilidade é classificada como autenticação quebrada e gerenciamento de sessões.

nível 6


Este serviço nos fornece o código fonte para análise.

imagem

O segredo que devemos inserir está incluído (conectado a partir do arquivo).

imagem

Vá para o endereço desse arquivo no servidor e obtenha
um segredo Como esses arquivos contêm código php, eles
exibido apenas se você baixá-los.

imagem

Envie um segredo, obtenha uma senha.

nível 7


Ao clicar nos dois links, notamos como eles são carregados. O nome do arquivo no servidor é passado nas páginas de parâmetro GET.

imagem

Vamos tentar especificar o caminho para o arquivo / etc / passwd como um parâmetro.

imagem

E eles nos dizem onde obter a senha.

imagem
A vulnerabilidade é classificada como LFI.

nível 8


O código fonte do serviço é fornecido. A cadeia codificada e o método de codificação são armazenados.

imagem

É necessário decodificar na ordem inversa:

  1. converter de exibição hexadecimal em representação binária;
  2. virar a linha;
  3. decodificar base64.

 <?php $secret = "3d3d516343746d4d6d6c315669563362"; echo base64_decode(strrev(hex2bin($secret)))."\n"; ?> 

imagem

Envie um segredo e obtenha uma senha.

imagem

nível 9


A partir da análise do código fonte, fica claro que os dados do usuário são transferidos para a linha de comando para procurar dados no arquivo.

imagem

Como os dados não são filtrados, você pode coletar o pipeline e executar outros comandos do SO. Se você passar uma string para a solicitação, por exemplo: "|| ls # ", a solicitação completa se tornará" grep -i || ls # dictionary.txt. " Tudo depois || - será executado com um erro e depois de # - será comentado, ou seja, obteremos apenas a saída do comando ls.

imagem

Assim, lemos o arquivo: “|| gato / etc / natas_webpass / natas10 # ".

imagem
A vulnerabilidade é classificada como Injeção de Comando do SO.

nível 10


A partir da análise do código fonte, fica claro que os dados do usuário são transferidos para a linha de comando para procurar dados no arquivo.

imagem

A tarefa é a mesma do nível 9, só que agora existe um filtro. T.O. os sinais desaparecerão da solicitação: “;”, “|”, “&”. Você pode legitimamente ler o arquivo! Suponha que nossa senha tenha o símbolo "z": "z / etc / natas_webpass / natas11 #".

imagem

Para ser continuado. Você pode se juntar a nós no Telegram .

Source: https://habr.com/ru/post/pt464111/


All Articles