Questão nº 85

Questão de Tecnologia da Informação · FGV TCE-PA 2024 (nº 85)

FGV2024Auditor de Controle Externo - Informática - Analista de SegurançaTecnologia da Informação
Gabarito: Ever comentário ↓

Um servidor Linux (Ubuntu) publicou uma página web. Durante a verificação de vulnerabilidades nessa página foi encontrada a falha conhecida como Local File Inclusion (LFI). Uma das evidências dessa falha foi constatada pelo analista de segurança quando ele manipulou a entrada da variável "page" demandada pela URL da página. O acesso idôneo deve ser realizado por meio da URL apresentada abaixo, na qual o arquivo "aplicacao.php" é passado como parâmetro para a vaiável "page".

https://192.168.0.1/index.php?page=aplicacao.php

A tabela a seguir, apresenta o resultado da manipulação da vaiável "page", realizada pelo analista de segurança desta empresa, com arquivos inexistentes no servidor.

Figura da questão de Tecnologia da Informação

Assinale a opção que apresenta o valor que esse analista deve passar como parâmetro para a variável "page", explorando a vulnerabilidade de LFI encontrada, para obter acesso ao conteúdo do arquivo "/etc/hostname" desse servidor de páginas.

Resposta comentada

Gabarito Alternativa E

A Local File Inclusion (LFI) é uma falha de segurança onde um aplicativo web permite que um atacante inclua arquivos do próprio servidor, geralmente manipulando um parâmetro na URL para especificar o caminho do arquivo. Para "escapar" do diretório da aplicação e acessar outros arquivos, o atacante usa a sequência ../, que significa "voltar um diretório".

Analisando a tabela fornecida, o caminho base da aplicação é /var/www/html/aplicacao/.

  • page=arquivo_inexistente.php resulta em /var/www/html/aplicacao/arquivo_inexistente.php.
  • page=../arquivo_inexistente.php resulta em /var/www/html/arquivo_inexistente.php (1 ../ subiu de aplicacao/ para html/).
  • page=../../arquivo_inexistente.php resulta em /var/www/arquivo_inexistente.php (2 ../ subiram de aplicacao/ para www/).
  • page=../../../arquivo_inexistente.php resulta em /arquivo_inexistente.php (3 ../ subiram de aplicacao/ para a raiz /).

Para acessar /etc/hostname, precisamos chegar à raiz (/) e então especificar o caminho.

A) Incorreta: Se o valor /etc/hostname for passado, a aplicação tentará acessar /var/www/html/aplicacao//etc/hostname, o que é um caminho inválido ou inexistente, pois ela concatena o parâmetro com seu caminho base.
B) Incorreta: Semelhante à alternativa A, resultaria em /var/www/html/aplicacao//hostname, que não é o arquivo desejado.
C) Incorreta: O valor /../etc/hostname resultaria em /var/www/html/aplicacao/../etc/hostname, que se resolve para /var/www/html/etc/hostname. Isso não é o arquivo /etc/hostname.
D) Incorreta: Esta é a armadilha da banca. Com base na análise da tabela, ../../../etc/hostname seria o suficiente para alcançar o arquivo /etc/hostname (pois 3 ../ já levam à raiz /). No entanto, a banca considerou a alternativa E como correta, o que implica que, em cenários de LFI, é comum usar um número maior de ../ do que o estritamente necessário para garantir que a raiz do sistema de arquivos seja alcançada, já que tentar subir além da raiz (/../) ainda resulta na raiz (/).
E) Correta: O valor ../../../../etc/hostname também alcançaria o arquivo /etc/hostname. Como 3 ../ já levam à raiz (/), um quarto ../ não altera o caminho final (ou seja, /../ a partir da raiz ainda é a raiz). Em ataques de LFI, é uma prática comum adicionar ../ extras para garantir que a raiz do sistema de arquivos seja alcançada, mesmo que o atacante não tenha certeza da profundidade exata do diretório da aplicação. Assim, /var/www/html/aplicacao/../../../../etc/hostname se resolve para /etc/hostname.

Fonte: FGV TCE-PA 2024 Auditor de Controle Externo - Informática - Analista de Segurança (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho