Pular para o conteúdo principal

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

Segurança da InformaçãoAtaques a Aplicações Web (XSS, CSRF, SQL Injection etc.)
Código
vu197081
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Aud ( )

O tipo de ataque que explora o fato de aplicações não efetuarem o devido tratamento em dados digitados pelo usuário antes de passar esses dados para o shell do sistema operacional é denominado

  1. ACommand Injection.
  2. BBlue Screen of Death.
  3. CPing of Death.
  4. DSmurf.
  5. ER.U.D.Y.
Revelar gabarito e comentário

GabaritoC — Ping of Death.

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”.

Command Injection e a execução de comandos no sistema operacional

Gabarito: letra A. O ataque que explora a falta de tratamento (validação/sanitização) dos dados fornecidos pelo usuário antes de passá-los ao shell do sistema operacional é o Command Injection — a injeção de comandos do sistema operacional, que permite a execução remota de comandos no servidor. As demais alternativas (Blue Screen of Death, Ping of Death, Smurf e R.U.D.Y.) são ataques de negação de serviço ou fenômenos de sistema, não relacionados à injeção de comandos via entrada de dados.

O Command Injection é uma vulnerabilidade de segurança que ocorre quando uma aplicação web ou outro software constrói comandos do sistema operacional (como ls, cat, whoami, ping) concatenando diretamente dados fornecidos pelo usuário, sem a devida validação, filtragem ou sanitização. O atacante, então, insere caracteres especiais (como ;, &&, |, $(), crases) para encerrar o comando legítimo e executar comandos arbitrários no servidor. Por exemplo, se uma aplicação executa ping <ip> e o usuário digita 127.0.0.1; cat /etc/passwd, o sistema executará o ping e, em seguida, o comando cat /etc/passwd, expondo informações sensíveis.

A raiz do problema está na falta de separação entre dados e comandos. Quando a aplicação não trata a entrada do usuário como dado, mas a concatena diretamente em uma string que será interpretada pelo shell, ela permite que o usuário injete comandos. A prevenção envolve: validar rigorosamente as entradas, usar funções que não invoquem o shell (como execve em vez de system), escapar caracteres especiais e aplicar o princípio do menor privilégio. Essa é a mesma lógica por trás de outras injeções, como SQL Injection e XSS, mas com alvo no sistema operacional.

A banca explora a confusão entre Command Injection e outros ataques que também envolvem envio de dados maliciosos, mas com alvos diferentes: SQL Injection ataca o banco de dados, XSS ataca o navegador do usuário, e CSRF explora a sessão autenticada. O Command Injection é específico por mirar o shell do sistema operacional. Guarde essa distinção: é exatamente ela que separa a alternativa correta das demais.

Injeção de comandos
  • 1Alvo
    • Shell do sistema operacional
  • 2Causa
    • Falta de validação/sanitização
    • Concatenação direta de dados
  • 3Prevenção
    • Validar entradas
    • Evitar funções que invocam shell
    • Escapar caracteres especiais
    • Menor privilégio
  • 4Distinção por alvo
    • SQL Injection → banco de dados
    • XSS → navegador do usuário
    • Command Injection → shell do SO
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

O Command Injection é exatamente o ataque descrito no enunciado: a aplicação não efetua o devido tratamento (validação/sanitização) dos dados digitados pelo usuário antes de passá-los ao shell do sistema operacional. O atacante injeta comandos maliciosos que são executados no servidor, podendo ler arquivos, executar programas ou comprometer o sistema. É a definição clássica dessa vulnerabilidade, listada no OWASP Top 10 como parte da categoria "Injeção".

Alternativa B — ❌ Incorreta

Blue Screen of Death (BSOD) é a tela azul de erro do Windows, que indica uma falha crítica do sistema operacional. Não é um ataque, mas um sintoma de erro de sistema — pode ser causado por um ataque, mas não é um tipo de ataque que explora entrada de dados para executar comandos no shell. A banca o inclui como distrator para confundir quem não conhece o termo.

Alternativa C — ❌ Incorreta

Ping of Death é um ataque de negação de serviço (DoS) que envia pacotes ICMP (ping) com tamanho maior que o permitido pelo protocolo, causando estouro de buffer e travamento do sistema alvo. Não envolve injeção de comandos via entrada de dados em aplicações — é um ataque de rede que explora falhas no empilhamento de protocolos.

Alternativa D — ❌ Incorreta

Smurf é outro ataque de negação de serviço (DoS) que explora o envio de pacotes ICMP (ping) com endereço de origem falsificado (spoofing) para o endereço de broadcast de uma rede, fazendo com que todos os hosts da rede respondam ao alvo, sobrecarregando-o. Não tem relação com injeção de comandos em aplicações.

Alternativa E — ❌ Incorreta

R.U.D.Y. (R U Dead Yet?) é uma ferramenta de ataque de negação de serviço (DoS) de baixa e lenta velocidade, que mantém conexões HTTP abertas enviando dados aos poucos, esgotando os recursos do servidor. Não explora a falta de tratamento de entrada para executar comandos no shell — é um ataque de exaustão de recursos.

NÃO CAIA NESSA!

A banca mistura ataques de negação de serviço (Ping of Death, Smurf, R.U.D.Y.) com o Command Injection, que é um ataque de injeção. O candidato que decora nomes sem entender o mecanismo pode confundir. Lembre-se: Command Injection = execução de comandos no sistema operacional; os demais = indisponibilidade de serviço.

PEGA ESSA DICA!

Para diferenciar ataques de injeção, pergunte: qual é o alvo? SQL Injection → banco de dados; XSS → navegador do usuário; Command Injection → shell do sistema operacional. Essa pergunta resolve a maioria das questões.

Gabarito: letra A

Link permanente: /questoes/vu197081