Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux
Neste artigo resolveremos a 25ª tarefa do site pwnable.kr.

informações organizacionaisPrincipalmente para quem deseja aprender algo novo e se desenvolver em qualquer área de segurança da informação e informática, escreverei e falarei sobre as seguintes categorias:

  • NMP;
  • criptografia (criptografia);
  • tecnologias de rede (Rede);
  • reversa (Engenharia Reversa);
  • esteganografia (Stegano);
  • busca e exploração de vulnerabilidades da WEB.

Além disso, compartilharei minha experiência em computação forense, análise de malware e firmware, ataques a redes sem fio e redes locais, realização de pentests e escrita de exploits.

Para que você fique sabendo de novos artigos, softwares e outras informações, criei Canal de telegrama и grupo para discutir quaisquer questões na zona do IIKB. Também seus pedidos pessoais, perguntas, sugestões e recomendações Vou dar uma olhada e responder a todos..

Todas as informações são fornecidas apenas para fins educacionais. O autor deste documento não assume nenhuma responsabilidade por qualquer dano causado a qualquer pessoa como resultado do uso do conhecimento e métodos obtidos como resultado do estudo deste documento.

Resolvendo a tarefa OTP

Vamos continuar com a segunda seção. Direi desde já que é mais complicado que o primeiro, mas desta vez não fornecem o código-fonte do programa. Não se esqueça da discussão aqui (https://t.me/RalfHackerPublicChat) e aqui (https://t.me/RalfHackerChannel). Vamos começar.

Clique no ícone com a assinatura otp. Recebemos um endereço e uma porta para conexão.

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Nós nos conectamos e examinamos o servidor.

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Uma bandeira que não podemos ler, um programa e seu código-fonte. Vejamos a fonte.

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Vamos resolver isso. O programa usa uma senha como argumento.

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Em seguida, 16 bytes aleatórios são armazenados na variável otp.

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Um arquivo com um nome aleatório é criado na pasta tmp (os primeiros 8 bytes são otp) e 8 bytes aleatórios são gravados nele (os segundos 8 bytes são otp).

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Por algum motivo, o valor do arquivo criado é lido e comparado com a senha inserida.

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

É aqui que entra a vulnerabilidade. Consiste em salvar intermediáriamente o número gerado em um arquivo. Podemos limitar o tamanho do arquivo, por exemplo, a 0, então ao escrever e ler, 0 será comparado com a senha. Isso pode ser feito assim.

# ulimit -f 0

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Agora vamos executar o programa.

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Recebemos um erro. Não importa, pode ser processado usando o mesmo python.

python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" 

Resolvendo a tarefa com pwnable.kr 25 - otp. Limite de tamanho de arquivo do Linux

Pegamos a bandeira e nossos 100 pontos fáceis. E continuamos: no próximo artigo abordaremos a Web. Você pode se juntar a nós em Telegram.

Fonte: habr.com

Adicionar um comentário