YATARI
EntrarParticipar
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ão
web100 ptsDificuldade 2/4

Uma 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)   | 6e656e68756d61
tentativa.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.