Injection de code (PHP)
De Wiki levelKro
Il s'agit d'inclure un code dans un document pour forcer l'affichage d'une publicité, pratique pour de l'hébergement gratuit sponsorisé. Inclure les fichiers .htaccess et user.php dans le dossier web de Apache, idéalement à la base d'une domaine. Les utilisateurs pourront utiliser leur espace Web comme d'habitude avec les mêmes fichiers. Cacher le fichier (avec un nom moins possible) sécurise mieux. Ceci est une injection de base pour un hébergement simple sous Apache.
Le .htaccess
Options +FollowSymLinks RewriteEngine On # Capture les demandes de fichier /, *.html, *.htm et *.php RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] # Si trouvé, ont redirige la demande sur user.php, le reste passe en normal (document non incrustable) RewriteRule (/|\.htm|\.php|\.html|/[^.]*) user.php
Le user.php
/* Ce script est pour ajouter un code a un fichier index sous forme html ou php Il ignore les autres pages que le index pour ne pas dédoubler le code dans des frames Pour forcer la pub, remplacer le index par le bon url */ // Récupère le fichier demandé et vérifie qui est traitable pour un ajout de code $verif="$REDIRECT_URL@@@"; $verif=str_replace("/","!",$verif); // Vérification avec appel de fichier $v_htm=str_replace(".htm","GOOD",$verif); $v_htm=str_replace(".html","GOOD",$v_htm); $v_htm=str_replace(".shtml","GOOD",$v_htm); $v_htm=str_replace(".php","GOOD",$v_htm); $v_htm=str_replace(".php3","GOOD",$v_htm); $v_htm=str_replace(".php4","GOOD",$v_htm); $v_htm=str_replace("!@@@","GOOD",$v_htm); // Vérification sans fichier à la fin $v_html=str_replace("!@@@","GOOD",$verif); // Charge le document index du site aucune présence de fichier à la fin if($v_html!=$verif){ if(file_exists(".".$REDIRECT_URL."index.php")){ require(".".$REDIRECT_URL."index.php"); } elseif(file_exists(".".$REDIRECT_URL."index.htm")){ require(".".$REDIRECT_URL."index.htm"); } elseif(file_exists(".".$REDIRECT_URL."index.html")){ require(".".$REDIRECT_URL."index.html"); } else{ echo "Page not found."; exit; } // Ajoute le code ici } elseif($v_htm!=$verif){ // Charge le fichier demandé, fichier dans l'url require(".".$REDIRECT_URL); } else { // Appel direct on ignore le résultat exit; }