La Faille Include

Apprendre à maîtriser les outils informatiques pour bien diffuser ses sagas mp3.
Message
Auteur
Avatar du membre
Kak Miortvi Pengvin
Netophoniste
Netophoniste
Masculin Messages : 4793
Enregistré le : dim. 21 janv. 2007, 10:31
Contact :

#16 Message par Kak Miortvi Pengvin » lun. 02 mars 2009, 21:01

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.
→ Carton poussiéreux.

:}

Foriche
Recrue
Recrue
Masculin Messages : 82
Enregistré le : sam. 07 févr. 2009, 16:08

#17 Message par Foriche » lun. 02 mars 2009, 21:15

Voir les messages bonnet d ane de cet utilisateur (3)

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 ?

Avatar du membre
Kak Miortvi Pengvin
Netophoniste
Netophoniste
Masculin Messages : 4793
Enregistré le : dim. 21 janv. 2007, 10:31
Contact :

#18 Message par Kak Miortvi Pengvin » lun. 02 mars 2009, 21:20

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.
→ Carton poussiéreux.

:}

Avatar du membre
Kradukman
Créateur
Créateur
Masculin Messages : 1883
Enregistré le : mer. 20 juin 2007, 17:42
A travaillé sur : Créateur:
Tasheman, Code Lyok Ouille, Le Casier, Brol, Gollum et le Provi

Réalisateur: Le Scénariste, La nuit des clés à molettes, Le livreur, diverses fausses bandes annonces

Acteur: Milhanna, 1287
Localisation : quelque part entre les ombres
Contact :

#19 Message par Kradukman » lun. 02 mars 2009, 21:23

Voir les messages bonnet d ane de cet utilisateur (4)

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).
je sais d'où vient topic tralala...
Image
Apprendre à mixer? Tutos
Baroudeur du mp3

Foriche
Recrue
Recrue
Masculin Messages : 82
Enregistré le : sam. 07 févr. 2009, 16:08

#20 Message par Foriche » lun. 02 mars 2009, 21:24

Voir les messages bonnet d ane de cet utilisateur (3)

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


Avatar du membre
Kak Miortvi Pengvin
Netophoniste
Netophoniste
Masculin Messages : 4793
Enregistré le : dim. 21 janv. 2007, 10:31
Contact :

#22 Message par Kak Miortvi Pengvin » lun. 02 mars 2009, 21:31

→ Carton poussiéreux.

:}

Foriche
Recrue
Recrue
Masculin Messages : 82
Enregistré le : sam. 07 févr. 2009, 16:08

#23 Message par Foriche » lun. 02 mars 2009, 21:36

Voir les messages bonnet d ane de cet utilisateur (3)

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

Avatar du membre
Kak Miortvi Pengvin
Netophoniste
Netophoniste
Masculin Messages : 4793
Enregistré le : dim. 21 janv. 2007, 10:31
Contact :

#24 Message par Kak Miortvi Pengvin » lun. 02 mars 2009, 21:39

Euh... Très approximativement, oui.
→ Carton poussiéreux.

:}

Avatar du membre
Kradukman
Créateur
Créateur
Masculin Messages : 1883
Enregistré le : mer. 20 juin 2007, 17:42
A travaillé sur : Créateur:
Tasheman, Code Lyok Ouille, Le Casier, Brol, Gollum et le Provi

Réalisateur: Le Scénariste, La nuit des clés à molettes, Le livreur, diverses fausses bandes annonces

Acteur: Milhanna, 1287
Localisation : quelque part entre les ombres
Contact :

#25 Message par Kradukman » lun. 02 mars 2009, 21:42

Voir les messages bonnet d ane de cet utilisateur (4)

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

Code : Tout sélectionner

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?
je sais d'où vient topic tralala...
Image
Apprendre à mixer? Tutos
Baroudeur du mp3

Avatar du membre
Kak Miortvi Pengvin
Netophoniste
Netophoniste
Masculin Messages : 4793
Enregistré le : dim. 21 janv. 2007, 10:31
Contact :

#26 Message par Kak Miortvi Pengvin » lun. 02 mars 2009, 21:51

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.
→ Carton poussiéreux.

:}

Avatar du membre
Zywa
Créateur
Créateur
Masculin Messages : 612
Enregistré le : dim. 16 sept. 2007, 21:29
A travaillé sur : -Star Wars : La Grande guerre des Siths (I, II, III)
-Programme Osiris 3

Gest dans :
Saison ZERO et Lost Everything de melfice737
Make Him Fall de Diwan

#27 Message par Zywa » lun. 02 mars 2009, 22:38

Voir les messages bonnet d ane de cet utilisateur (3)

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...)

Avatar du membre
Kak Miortvi Pengvin
Netophoniste
Netophoniste
Masculin Messages : 4793
Enregistré le : dim. 21 janv. 2007, 10:31
Contact :

#28 Message par Kak Miortvi Pengvin » lun. 02 mars 2009, 22:41

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 : Tout sélectionner

$page = $_GET['page']

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

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

Ect ...

→ Carton poussiéreux.

:}

Avatar du membre
Zywa
Créateur
Créateur
Masculin Messages : 612
Enregistré le : dim. 16 sept. 2007, 21:29
A travaillé sur : -Star Wars : La Grande guerre des Siths (I, II, III)
-Programme Osiris 3

Gest dans :
Saison ZERO et Lost Everything de melfice737
Make Him Fall de Diwan

#29 Message par Zywa » lun. 02 mars 2009, 22:45

Voir les messages bonnet d ane de cet utilisateur (3)

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

Avatar du membre
Alinor
Créateur
Créateur
Masculin Messages : 547
Enregistré le : mer. 07 mai 2008, 20:17
A travaillé sur : Les Chroniques de Ravnica, Arena, Assassin, Derniers jours de Szadec, Pong de Ark
Prochainement dans :
L.C.D.N : L'Aube du Chaos de Dychollin,Hard Life de Sim, Résistance de Szadec et Abolition de Destra.
Localisation : Devant les portes d'Ihzazsh
Contact :

#30 Message par Alinor » mar. 03 mars 2009, 11:33

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...

Image
Image
Image


Répondre ↩

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité