Pular para o conteúdo principal

Questão de Segurança da Informação — Ataques a Aplicações Web (XSS, CSRF, SQL Injection etc.) — INSTITUTO AOCP 2024

Segurança da InformaçãoAtaques a Aplicações Web (XSS, CSRF, SQL Injection etc.)
Código
qa632611
Banca
INSTITUTO AOCP
Órgão
DPE MS
Ano
2024
Cargo
Ana Def ( )

A respeito da SQL Injection, analise as assertivas e assinale a alternativa que aponta a(s) correta(s).

 

I. Um ataque de SQL Injection consiste na inserção ou "injeção" de uma consulta SQL parcial ou completa através da entrada de dados ou transmitida do cliente (navegador) para a aplicação web.

 

II. Os ataques de SQL Injection são um tipo de ataque de injeção, a falha é dificilmente detectada e explorada. Nesses ataques, os comandos SQL são injetados para afetar a execução de comandos SQL predefinidos.

 

III. Um ataque de SQL Injection bem-sucedido pode ler, modificar, executar, recuperar dados confidenciais ou gravar arquivos no sistema de arquivos e, em alguns casos, emitir comandos para o sistema operacional.


  1. AApenas I.
  2. BApenas II.
  3. CApenas III.
  4. DApenas I e II.
  5. EApenas I e III.
Revelar gabarito e comentário

GabaritoE — Apenas I e III.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL Injection: conceito, alcance e consequências

Gabarito: letra E — corretos os itens I e III. O item II está incorreto porque afirma que a falha de SQL Injection é "dificilmente detectada e explorada", quando na verdade ela é uma das vulnerabilidades mais conhecidas, documentadas e exploradas em aplicações web, sendo alvo de ferramentas automatizadas e testes de segurança. A definição de SQL Injection envolve a inserção de comandos SQL maliciosos por meio de entradas de dados do usuário, e seus impactos podem incluir leitura, modificação e exclusão de dados, além de, em alguns casos, execução de comandos no sistema operacional.

A SQL Injection (ou injeção de SQL) é uma vulnerabilidade de segurança da informação que explora a forma como uma aplicação web constrói e executa consultas ao banco de dados. Em vez de tratar os dados fornecidos pelo usuário como simples valores, a aplicação vulnerável os concatena diretamente na instrução SQL, permitindo que o atacante "quebre" a consulta original e insira comandos próprios. O nome do ataque vem exatamente dessa ideia: injetar código SQL não previsto pelo desenvolvedor através de campos de formulário, parâmetros de URL, cabeçalhos HTTP ou qualquer outra entrada controlada pelo cliente.

O funcionamento prático é mais simples do que parece. Imagine um formulário de login que monta a consulta SELECT * FROM usuarios WHERE login = '$usuario' AND senha = '$senha'. Se o atacante digitar no campo de senha o valor ' OR '1'='1, a consulta resultante será SELECT * FROM usuarios WHERE login = 'admin' AND senha = '' OR '1'='1'. Como '1'='1' é sempre verdadeiro, a condição inteira se torna verdadeira e o atacante consegue acessar o sistema sem conhecer a senha. Esse é o exemplo clássico, mas as variações são inúmeras: o atacante pode usar UNION SELECT para extrair dados de outras tabelas, ; DROP TABLE para destruir dados, ou até mesmo funções do banco para ler e escrever arquivos no servidor.

A razão pela qual a SQL Injection é tão perigosa está na sua abrangência. Ela não se limita a roubar dados — embora isso já seja grave —, mas pode comprometer a integridade e a disponibilidade do sistema como um todo. Dependendo das permissões do usuário do banco de dados utilizado pela aplicação, o atacante pode modificar registros, apagar tabelas inteiras, criar novos usuários administrativos e, em cenários mais extremos, obter acesso ao sistema operacional subjacente. É por isso que o item III está correto: um ataque bem-sucedido pode ler, modificar, recuperar dados confidenciais ou gravar arquivos no sistema de arquivos e, em alguns casos, emitir comandos para o sistema operacional.

A distinção que importa aqui é entre a SQL Injection e outros ataques de injeção ou de aplicação web. O XSS (Cross-Site Scripting), por exemplo, também injeta código, mas o alvo é o navegador da vítima, não o banco de dados — o código injetado é JavaScript, executado no cliente. O CSRF (Cross-Site Request Forgery), por sua vez, não injeta código algum: ele força a vítima autenticada a executar ações indesejadas, explorando a confiança que o site deposita no navegador. A SQL Injection é específica: o alvo é o banco de dados, e o vetor é a consulta SQL mal construída. Essa fronteira é o critério que separa as assertivas corretas das incorretas.

A pegadinha da banca neste tema está no item II, que inverte a realidade sobre a detectabilidade da falha. A SQL Injection não é uma vulnerabilidade obscura ou difícil de encontrar — muito pelo contrário, é uma das mais conhecidas e exploradas, com ferramentas automatizadas como o SQLMap dedicadas exclusivamente a detectá-la e explorá-la. A banca tenta fazer o candidato acreditar que a falha é rara e difícil de explorar, quando a verdade é que ela é amplamente documentada e alvo constante de ataques. Guarde essa distinção: SQL Injection é uma ameaça conhecida, com técnicas de detecção e prevenção bem estabelecidas, e não uma falha misteriosa.

Item

Conteúdo da assertiva

Veredito

I

Inserção de consulta SQL parcial ou completa via entrada de dados do cliente (navegador) para a aplicação web

✅ Correto

II

Ataque de injeção; falha dificilmente detectada e explorada; comandos SQL injetados para afetar execução de comandos predefinidos

❌ Incorreto (a falha é amplamente conhecida e explorada, com ferramentas automatizadas)

III

Ataque bem-sucedido pode ler, modificar, executar, recuperar dados confidenciais ou gravar arquivos no sistema de arquivos e, em alguns casos, emitir comandos ao sistema operacional

✅ Correto

1Conceito
Inserção de comandos SQL
Via entrada de dados do usuário
2Impactos
Ler dados confidenciais
Modificar registros
Gravar arquivos no servidor
Comandos no sistema operacional
3Detecção
Falha difícil de detectar
Vulnerabilidade conhecida
Ferramentas automatizadas (SQLMap)
SQL Injection
LEVELsoulevel.com.br
SQL Injection: Conceito (Inserção de comandos SQL, Via entrada de dados do usuário); Impactos (Ler dados confidenciais, Modificar registros, Gravar arquivos no servidor, Comandos no sistema operacional); Detecção (Falha difícil de detectar, Vulnerabilidade conhecida, Ferramentas automatizadas (SQLMap))

Item I — ✅ Correto

A assertiva define corretamente o ataque: a SQL Injection consiste na inserção ou "injeção" de uma consulta SQL parcial ou completa através da entrada de dados ou transmitida do cliente (navegador) para a aplicação web. Essa é exatamente a mecânica do ataque — o atacante manipula os dados de entrada que a aplicação utiliza para montar consultas ao banco, inserindo comandos SQL que não foram previstos pelo desenvolvedor. A definição está alinhada com o conceito amplamente aceito de SQL Injection.

Item II — ❌ Incorreto

O erro está na afirmação de que a falha é "dificilmente detectada e explorada". Na prática, a SQL Injection é uma das vulnerabilidades mais conhecidas e exploradas em aplicações web, com ferramentas automatizadas (como o SQLMap) dedicadas a detectá-la e explorá-la. A parte inicial da assertiva — que os ataques de SQL Injection são um tipo de ataque de injeção e que comandos SQL são injetados para afetar a execução de comandos predefinidos — está correta, mas a caracterização da falha como difícil de detectar e explorar é falsa. A banca inverte a realidade para confundir o candidato.

Item III — ✅ Correto

A assertiva descreve corretamente o impacto potencial de um ataque de SQL Injection bem-sucedido: ler, modificar, executar, recuperar dados confidenciais ou gravar arquivos no sistema de arquivos e, em alguns casos, emitir comandos para o sistema operacional. Essa é a abrangência real do ataque, que pode comprometer a confidencialidade, a integridade e a disponibilidade dos dados, além de, em cenários extremos, permitir o comprometimento do servidor.

Conclusão: corretos os itens I e III, portanto a alternativa correta é a letra E.

Gabarito: letra E

Link permanente: /questoes/qa632611