Execute
Descrição do Desafio:
Autor: AlexZander Plataforma: Hack The Box Categoria: Pwn Dificuldade: Fácil Data: 2024 Descrição:
Can you feed the hungry code?
Passo a Passo da Solução
1. Análise do arquivo fornecido
Este desafio fornece o código-fonte dele, dessa forma o primeiro passo é analisar ele para tentar identificar possíveis vulnerabilidades.
Analisando o código, podemos perceber que ele verifica se nosso input contém algum dos bytes da blacklist
, e se nenhum desses bytes estiver no input, o código executa o que estiver no buf
.
Dessa forma, a vulnerabilidade se torna bem óbvia, devemos inserir shellcodes no input para eles imprimirem o conteúdo do arquivo flag.txt
ou deem acesso ao terminal, porém nenhum dos bytes da blacklist
deve estar no input.
Nota: O shellcode será executado porque a proteção NX
está desativada.
2. Exploit
A abordagem adotada foi criar um shellcode que chama a syscall execve
passando como parâmetro a string /bin/sh
. Normalmente, o assembly seria:
Porém muitos dos bytes presentes nessa sequência de código estão na blacklist
. Então, a solução acabou sendo mais na tentativa e erro, testando sequências que não contenham bytes da lista negra.
Com isso é possível obter acesso ao terminal, e digitando o comando cat flag.txt
a flag aparece.
Flag
HTB{wr1t1ng_sh3llc0d3_1s_s0_c00l}
Autor da WriteUp
Atualizado