Paginator
Atualizado
Atualizado
Plataforma: Nullcon CTF Categoria: Web Exploitation Autor: gehaxelt
O desafio "Paginator" apresenta um site vulnerável a SQL Injection, permitindo acesso não autorizado ao conteúdo do banco de dados SQLite. O objetivo é explorar essa vulnerabilidade para obter a flag.
A análise do código PHP revela que a aplicação usa um banco de dados SQLite para armazenar páginas e suas respectivas descrições. O código relevante pode ser visto na imagem abaixo:
O banco de dados armazena páginas numeradas de 1 a 10.
A flag está armazenada na página "Flag", codificada em Base64.
O código permite consultas SQL diretamente via parâmetro p
na URL.
A consulta NÃO usa prepared statements, tornando-a vulnerável a SQL Injection.
O site possui uma funcionalidade para listar páginas dentro de um intervalo de IDs, acessível pela URL:
A consulta SQL gerada é:
Como não há filtragem de entrada adequada, podemos manipular o parâmetro para injetar SQL arbitrário.
Ao modificar a URL para:
Estamos alterando a consulta SQL para:
Isso força a inclusão da página com ID 1, que contém a flag.
URL injetada:
A resposta do servidor retorna a flag codificada em Base64:
Usamos uma ferramenta online ou o comando base64 -d
no terminal: