NoSQL Injection
Atualizado
Atualizado
Autor: NGIRIMANA Schadrac Plataforma: PicoCTF Categoria: Web Exploitation Dificuldade: Média
Este desafio explora uma vulnerabilidade de NoSQL Injection para obter acesso ao sistema sem credenciais válidas. O objetivo principal é encontrar a flag utilizando NoSQL Injection.
Ao acessar o site, foi identificado um formulário de login que solicita email e senha.
No console do navegador, é exibida uma mensagem indicando que, após um login bem-sucedido, um token será armazenado no localStorage
.
Efetuar o login sem fornecer credenciais válidas, explorando uma vulnerabilidade de NoSQL Injection.
Utilizando $ne
(not equal):
Email:
Senha:
Esse payload ignora qualquer validação ao verificar que o valor não é nulo.
Usando $gt
(maior que):
Email:
Senha:
Permite valores que sejam "maiores" do que uma string vazia, efetivamente ignorando verificações.
Forçando condições verdadeiras com $or
:
Email:
Senha:
Esse payload verifica múltiplas condições, aceitando o login se uma delas for verdadeira.
No campo email:
E no campo senha:
Essa abordagem foi bem-sucedida e confirmou a vulnerabilidade do sistema.
Após o login bem-sucedido, um token é armazenado no localStorage
. Para acessá-lo:
Abra o console do navegador.
Navegue até a aba Application.
No menu lateral, vá para Storage > Local Storage.
Localize o token armazenado.
O token encontrado está em formato Base64. Para decodificá-lo:
Copie o token.
Utilize uma ferramenta ou método para decodificação Base64.
Após decodificar o token, a flag será exibida no formato: