Questão nº 42
Questão de Segurança da Informação · FGV TJDFT 2022 (nº 42)
A equipe de segurança de um órgão público detectou em seus sistemas de monitoramento a seguinte requisição em direção a um site do órgão: http://www.site.gov.br/index.php?username=1'%20or%20'1'%20=%20'1'))/*&password=t&$t3.
O tipo e a técnica de ataque detectados são, respectivamente:
- AHTML injection, com o objetivo de alterar a página de login;
- BSQL injection, com o objetivo de bypassar a página de login; (alternativa correta)
- CSQL injection, com o objetivo de forçar o banco de dados a gerar um erro;
- DCommand injection, com o objetivo de realizar a execução de código na página de login;
- ECommand injection, com o objetivo de forçar o banco de dados a gerar um erro.
Resposta comentada
Gabarito Alternativa B
SQL injection acontece quando um atacante insere código SQL em campos de entrada (como o username da URL) para manipular o banco de dados. O trecho '1' = '1' é uma condição que sempre é verdadeira, usada para bypassar (pular) a verificação de login, fazendo o sistema acreditar que o usuário é válido sem saber a senha.
- (A) Incorreta: HTML injection altera o conteúdo da página exibida, mas aqui o payload é claramente SQL (com
or,=,/*), não HTML. - (B) Correta: O payload
1' or '1'='1'é um clássico de SQL injection que força a condição doWHEREa ser sempre verdadeira, bypassando a autenticação da página de login. - (C) Incorreta: O objetivo não é gerar erro no banco; a técnica usa uma condição verdadeira para logar sem credenciais válidas, não para provocar falha.
- (D) Incorreta: Command injection explora comandos do sistema operacional (ex.:
; ls), não manipula SQL; aqui o vetor é o banco de dados, não o SO. - (E) Incorreta: Mesma confusão da D: não há execução de comando no SO e o foco é bypass de login, não erro de banco.
Armadilha da banca: O distrator mais tentador é a letra C, porque o /* no final parece um comentário SQL que poderia "quebrar" a query. Mas a banca quer que você perceba que o or '1'='1' é a parte ativa que autentica (bypass), e o /* apenas comenta o resto da query original para evitar erros de sintaxe — não é o objetivo do ataque.
Fonte: FGV TJDFT 2022 Analista Judiciário - Segurança da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.