Netophonix - Le forum
https://forum.netophonix.com:443/

La Faille Include
https://forum.netophonix.com:443/viewtopic.php?f=22&t=248
Page 2 sur 3

Auteur:  Kak Miortvi Pengvin [ Lun 02 Mars 2009, 21:01 ]
Sujet du message: 

Kak Miortvi Pengvin a écrit:
Tu m'expliques l'intérêt de ce message? Ce que viennent faire là ces espèces de pseudos-smileys sms? Si c'est de l'humour, ce n'est ni fin ni drôle. Zéro intérêt, zéro contenu, orthographe minimale et sms... La prochaine fois, abstiens toi.

C'est le conseil qu'il te faudra suivre ici.

Pour en revenir au sujet qui nous occupe ici pourquoi ne pas simplement adopter la structure suivante: chaque page incluant autour d'une section principale des éléments réguliers et plus légers comme le header, le footer, les modules, etc... Il suffit alors de faire son inclusion en dur dans le code. Au final, on est protégé contre cette faille, on n'a pas beaucoup plus de fichiers, c'est plus propre que les tableaux, les bdd et autres trucs bizarres.

Auteur:  Foriche [ Lun 02 Mars 2009, 21:15 ]
Sujet du message: 

Vous auriez l'adresse d'un site ou d'un lien de logiciel me permettant de comprendre votre langage qui à mes yeux est codé.... :uh:
En fait pour faire simple, et pour en revenir à ce que dit Alinor, ce n'est pas simple pour tout le monde ^_^, je sais... je suis une vraie bille...
Sinon, vous auriez un lien ?

Auteur:  Kak Miortvi Pengvin [ Lun 02 Mars 2009, 21:20 ]
Sujet du message: 

Euh... Il te faut quelques notions de php. Si tu veux une traduction sommaire, je peux te dire qu'en php, il est possible d'inclure des pages dans d'autres. Pour cela, on utilise un fonction d'inclusion (include). Cela peut se révéler problématique lorsque tu fais passer les adresses des pages que tu veux inclure en variable dans un lien hypertexte (lien banal). En effet, cela va charger la page sur ton serveur et exécuter son contenu. Si une personne malveillante s'en rend compte, elle va pouvoir exécuter quelques fichiers php qui lui permettront à terminer de pirater ton site et/ou de te pourrir la vie.
Néanmoins, cela peut être corrigé et c'est de ces corrections dont nous discutons ici. A savoir aussi que cette faille ne concerne que les pages en php.

Auteur:  Kradukman [ Lun 02 Mars 2009, 21:23 ]
Sujet du message: 

http://siteduzero.com/
J'ai une question: en discutant avec un créateur de saga mp3, il m'a dit qu'il avait réussi à passer dans ma partie admin (utilisation des sessions).
J'utilisais le système d'include pour une partie de mes menus, mais pas pour le contenu de la page.
En fait, je récupère un nombre par l'adresse. Ce nombre est l'ID de la page dans ma BDD. Puis j'affiche ce que me renvoie le PhpMyAdmin. Donc, ma question: comment a fait le créateur pour passer une page de Hack via l'adresse?
(je précise: je suis tombé sur un type sympa qui ne m'a fait aucun problème mais m'a juste signalé la faille. Ça m'intrigue).

Auteur:  Foriche [ Lun 02 Mars 2009, 21:24 ]
Sujet du message: 

Inclure une variable dans un lien hypertexte ? Oo
Moi y'en avoir pas compris...

Auteur:  Blast [ Lun 02 Mars 2009, 21:29 ]
Sujet du message: 

Alors laisse tomber. C'est que tu n'es pas concerné.

Auteur:  Kak Miortvi Pengvin [ Lun 02 Mars 2009, 21:31 ]
Sujet du message: 

De ce style là: http://www.tonsite.fr/unepage.php?uneva ... spages.php . Sauf qu'un pirate fera ça: http://www.tonsite.fr/unepage.php?uneva ... t/hack.php

Auteur:  Foriche [ Lun 02 Mars 2009, 21:36 ]
Sujet du message: 

Ok, là j'ai compris.
Le Hacker peut modifier ton site comme il veut quoi... et sa, c'est une sorte de pare-feu.

Auteur:  Kak Miortvi Pengvin [ Lun 02 Mars 2009, 21:39 ]
Sujet du message: 

Euh... Très approximativement, oui.

Auteur:  Kradukman [ Lun 02 Mars 2009, 21:42 ]
Sujet du message: 

Ça me fait penser:
l'autre système pour éviter ce genre de problème, il suffit d'utiliser une régex.

Code:
if(preg_match(xxxxx))  // je ne me souviens plus du code de la regex, mais il faut remplacer xxxxxx par la regex pour trouver http dans $_GET['page']
{
}
else
{
$page=htmlspecialchars(mysql_real_escape_string($_GET['page']));
}


Question: à ce stade, si on place $_GET['page'] dans un if ou une condition ou autre, un script mis à la place de "page" peut-il s'exécuter?

Auteur:  Kak Miortvi Pengvin [ Lun 02 Mars 2009, 21:51 ]
Sujet du message: 

Probablement pas puisque tu te contentes de passer l'adresse dans ta regex (de ce genre là si c'est cette notation qui prévaut en php: ^(^http://)[a-z0-9](.php){1}$ ). Et le hacker ne peut pas appeler sa page sans http. Du moins, je ne pense pas. Seulement, il vaut mieux se méfier et matcher quelque chose de plus strict.

Edition: Alors... J'ai fait quelques relectures et voilà ce qu'on peut tenter: ^(^http://)[a-z0-9./_-]+(.php|.html|.htm){1}$ Mais j'ai tendance à penser que ce n'est pas la meilleure solution et qu'il vaut mieux inclure directement ses pages plutôt que de passer par du GET ou POST.

Note: Je tiens à préciser que je me contente de "lire" le PHP. Je ne le pratique pas et je n'en maîtrise donc pas les subtilités. C'est à mon avis à prendre en compte lorsque vous lisez mes messages.

Auteur:  Zywa [ Lun 02 Mars 2009, 22:38 ]
Sujet du message: 

Sinon, pour mon dernier site : je tranmet une variable : par exemple dans mon url :
http://shadowvoices.olympe-network.com/?include=saga
Et en fonction que prend la variable $_GET['include'] j'inclus la page demandée (je teste la variable par un switch)

Là il n'y a pas de problème de faille si ?
(enfin, c'est ce que je me suis dis, comme je ne tranmet pas un url...)

Auteur:  Kak Miortvi Pengvin [ Lun 02 Mars 2009, 22:41 ]
Sujet du message: 

Normalement non. La faille apparaît lorsqu'il y a utilisation directe de la page passée en variable. Toi, tu passes par un switch qui s'il est correctement rédigé et placé, t'évitera les valeurs aberrantes. Cette méthode a déjà été suggérée plus haut:
Cekos a écrit:
Je suis pas d'accord avec toi, a mon avis un bon vieux switch est plus efficace dans ce genre

Code:
$page = $_GET['page']

switch $page
 case "index":
  include('forums.html');
  break;

 case "forum":
   include('forum.php');
   break;

Ect ...


Auteur:  Zywa [ Lun 02 Mars 2009, 22:45 ]
Sujet du message: 

:arf: J'ai posté avant de lire la page d'avant...
Bon ben merci, parce que j'était pas certain sur ce point là :) !

Auteur:  Alinor [ Mar 03 Mars 2009, 11:33 ]
Sujet du message: 

Kak Miortvi Pengvin a écrit:
Alinor, tu parles à un membre qui a posté il y a deux ans...


mea culpa, j'avais pas vu qu'il y en avais un qui avais ressucité ce topic...

Page 2 sur 3 Le fuseau horaire est réglé sur UTC+1 heure [Heure d’été]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/