Jogos / Arena CTF / fase 4
Aspas perigosas
Uma tela de login monta a consulta SQL juntando texto. Veja o que acontece com a entrada de um atacante simulado.
Dificuldade 2/4 · 100 XP na primeira conclusãoUma tela de login monta a consulta SQL juntando texto. Veja o que acontece com a entrada de um atacante simulado.
Entenda o que a consulta vira com a entrada acima. A nota interna da linha devolvida está em hexadecimal.
login.js304 B
// servidor fictício de uma loja
function entrar(usuario, senha) {
const sql = "SELECT * FROM usuarios WHERE nome = '" + usuario + "' AND senha = '" + senha + "'";
const linhas = banco.consultar(sql);
if (linhas.length > 0) return linhas[0]; // devolve a primeira linha encontrada
return null;
}tabela-usuarios.txt292 B
id | nome | senha | nota_interna (hex)
---+--------+----------------+--------------------------------
1 | bruna | (hash longo) | 6e656e68756d61
2 | admin | (hash longo) | 5954527b61737061735f7175656272616d5f636f6e73756c7461737d
3 | caio | (hash longo) | 6e656e68756d61tentativa.txt136 B
Entrada do atacante simulado:
usuario = admin' --
senha = qualquer
Que consulta chega ao banco? O que o -- faz? Qual linha volta?Placar da arenaEntre para ver o placar.