Salve a tutti!
E' la prima volta che scrivo sul forum, ma lo leggo con ttenzione da molto tempo, visto che è un'ottima risorsa.
Ho cercato vari thread sulla sicurezza, la vulnerabiltià degli include, ma credo di non aver trovato nessun post adatto e così ne ho aperto un altro.
Da qualche tempo combatto con un virus che si ricrea da solo su dei siti che gestisco, sia fatti su wordpress che si joomla. fa strage anche su siti con un cms proprietario, scritto da me.
Questo maledetto, prende il .htaccess, quindi tutti i file php di tipo main e index, quindi quasi tuttti i .js
ora, colpa mia, non conosco molto le tecniche per proteggersi da rfi, e sto cercando di aggiornarmi.
nel mio cms uso un sistema a template, quindi una pagina home.php. che richiama tutte le altre.
prima effettuavo (idiota io) l'include così:
include('pagine/'.$p.".php");
ora ho fatto la seguente modifica
if (file_exists('pagine/'.$p.".php")) {
include('pagine/'.$p.".php");
} else {
include ('404.php');
}
cioè ora controllo che quel file esista sul sito e nel caso lo includo, altrimenti no
in realtà, però, ho visto che di base, la "vecchia" inclusione del tipo htttp:/miosito/index.php?page=http:/www.hacker.it
non è più possibile, perché di base la configurazione del php, ora nega l'inclusione dei file tramite url
quindi, dato per scontato che un controllo, anche più rigoroso di quello che ho scritto, va comunque fatto, qual'è la lista delle vulnerabilità ovvie da ricontrollare?
mi spiego ancora meglio:
ho provato a simulare un attacco indegno di questo nome (ovviamente fallito), con un file di questo tipo
<script>
alert('provo a scrivere');
</script>
<?php
$contenuto="io sono una stringa aggiunta";
$var=fopen( '../root del sito da attaccare/index.php' ,"a");
fwrite($var, $contenuto."\n");
fclose($var);
?>
ma da tempo ormai, da quel che ho capito, non si può scrivere con un metodo del genere su un file, o è ancora possibile? Visto che però è possibile, qual'è il metodo usato, a grandi linee? o comunque, cosa controllare prima?