logo Homepage
+  NewbieContest
|-+  Divers» Hacking» Faille Include
Username:
Password:
Pages: [1] 2
  Imprimer  
Auteur Fil de discussion: Faille Include  (Lu 7597 fois)
The KinG

Profil challenge

Classement : 19146/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 19


Voir le profil WWW
« le: 17 Janvier 2007 à 22:05:57 »

Bonjour tout le monde.

Pour tester la faille include je me suis fais un petit script faillible.
Le voici:

Code:
<?php

$page 
$_GET['page'];
include(
"$page.php");

?>
Sachant que: je veux inclure ma page.php dans ma pag3.php .
Le code ne fonctionne pas correctement et je ne comprend pas trop pourquoi.

Et une autre question, une fois dans un challenge, j'ai testé la faille et le site a remarqué une tentative de modification de l'url.
Comment le site fait-il pour savoir cela ? Il utilise des conditions ? Je sais vraiment pas.

Merci de votre aide.
Journalisée

G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
Nebelmann

Profil challenge

Classement : 464/54319

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1357


Voir le profil
« #1 le: 18 Janvier 2007 à 08:19:14 »

Fais bien attention à entrer une URL du type
Code:
pag3.php?page=kikoulol
et non
Code:
pag3.php?page=kikoulol.php
sinon tu incluerais kikoulol.php.php ce qui me semble pas bien

La raison pour laquelle le site a remarqué ta modification est simple : toutes les pages valides ont été mises dans un tableau, lorsque l'on veut faire l'include on regarde si la page est dans le tableau, si elle n'y est pas c'est que tu as essayé de modifier le comportement normal
Journalisée

-- Nebelmann -- Registered linux user #429186
«Si les lecteurs étaient des compilateurs, les posteurs feraient peut-être davantage attention à ce qu'ils écrivent...»
offw0rld

Profil challenge

Classement : 122/54319

Membre Complet
***
Hors ligne Hors ligne
Messages: 127


Voir le profil
« #2 le: 18 Janvier 2007 à 15:52:49 »

Ou peut etre que les pages sont des fonctions, ça évite les includes.
Code:
<?php

function indexcontents()
{
      echo 
"<html>mon index ...";
}

if (isset(
$_GET['page']))
{
    if(
$_GET['page']=="index")
        
indexcontents();
    else
        echo 
"Arrete de modifier mon url";
}

else
    
indexcontents();  

?>
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 190/54319

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #3 le: 18 Janvier 2007 à 16:25:42 »

ouais mais ca implique d'avoir toutes les pages dans le même fichier...
Pour un petit site ca va, mais pour un site genre NC, c'est pas très pratique...

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
offw0rld

Profil challenge

Classement : 122/54319

Membre Complet
***
Hors ligne Hors ligne
Messages: 127


Voir le profil
« #4 le: 18 Janvier 2007 à 16:33:04 »

pas forcément, mais je trouve ça plus pratique de ne pas avoir 50 fichiers un peu partout sur le serveur, ensuite tu peux séparer tes fichiers.

contentsforum.php
contentsmembre.php
contentspublic.php
etc

Ensuite tous ça ce gere à la création.
Journalisée
The KinG

Profil challenge

Classement : 19146/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 19


Voir le profil WWW
« #5 le: 18 Janvier 2007 à 18:55:35 »

Merci pour vos indications.
Vous ne m'avez pas fais de remarque sur mon code PHP. J'en conclue qu'il n'y a pas d'érreure.
Mais il ne fonctionne toujours pas malgré de nombreuses tentatives.

Par **orthographe !** j'ai trouvé une autre façon d'include une page dans une autre.
Voici le code:

Code:
<?php

include("page.php");

?>
Ce code fonctionne très bien par contre !
Mais est-il toujours faillible ?
On ne voit plus le lien du type page=page.

Merci de votre aide.
Journalisée

G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
the lsd
Administrateur

Profil challenge

Classement : 190/54319

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #6 le: 18 Janvier 2007 à 18:59:22 »

ton deuxieme code n'est pas faillible, vu qu'il n'y a aucune variable.
Ton include, incluera obligatoirement le fichier nommé page.php

Offworld, dans ce cas tu a plusieurs fichiers, et donc tu fait un include non ? Donc ca revient au meme (ou alors j'ai pas calé ce que tu as dit...)

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
The KinG

Profil challenge

Classement : 19146/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 19


Voir le profil WWW
« #7 le: 18 Janvier 2007 à 19:15:54 »

Et donc mon 1er est faillible.
C'est alors lui qui m'interrese le plus.

Sinon je suis toujours bloqué car il ne fonctionne pas.
Bref je vais essayer de voire ce qui ne va pas.

Je vous tiens au courant...
Journalisée

G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
offw0rld

Profil challenge

Classement : 122/54319

Membre Complet
***
Hors ligne Hors ligne
Messages: 127


Voir le profil
« #8 le: 18 Janvier 2007 à 19:47:38 »

Pour lsd :
Non, je parler juste de diviser tes functions dans plusieurs fichiers, mais aucune faille
requiere_once("les_differente_page");
et ensuite on revient sur le code qui execute les fontions en fonction du $_GET.

Pour the king :
Comme l'a dit nebelmann page=kikoulol, inclue la page kikoulol.php,
aucune raison qu'il ne marche pas, en revanche il est completement faillible.
Journalisée
The KinG

Profil challenge

Classement : 19146/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 19


Voir le profil WWW
« #9 le: 18 Janvier 2007 à 20:20:50 »

Citation de: offworld
Pour the king :
Comme l'a dit nebelmann page=kikoulol, inclue la page kikoulol.php,
aucune raison qu'il ne marche pas, en revanche il est completement faillible.
Dis-moi ce qui ne va pas dans mon code je ne vois vraiment pas.

Code:
<?php

$page 
$_GET['include.php'];
include(
"$page");

echo 
"Ici est inclue la page include.php";

?>
Merci
Journalisée

G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
the lsd
Administrateur

Profil challenge

Classement : 190/54319

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #10 le: 19 Janvier 2007 à 00:36:54 »

ton code n'est pas le meme que le premier que tu as mis.

Dans le premier, tu incluais la variable de la page + le .php
donc quand tu passe la variable kikoulol
Ca va inclure kikoulol.php (la vraiable + le .php)

Dans le code que tu viens de poster, tu as une variable qui passe en GET (par url donc), nommée include.php.
Ensuite tu inclue ta variable donc, le code est faillible egalement, car si on ecrit par exemple dans l'url kikoulol_leretour.php, cela incluera kikoulol_leretour.php (la difference entre ce code et le premier est le ".php" dans l'include)
En esperant t'avoir aider un peu...

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Nms

Profil challenge

Classement : 76/54319

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 794


Voir le profil
« #11 le: 19 Janvier 2007 à 10:48:22 »

The King, essaie le code suivant :

Code:
<?php

$page 
$_GET['page'];
include(
$page);

?>
Disons que tu as nommé ton script "test.php" . Maintenant tu appelles ton script de la manière suivante :
test.php?page=http://www.google.fr
et dis moi ce qui se passe. Et si ça ne marche toujours pas, précise où tu fais tes tests, si c'est en local ou sur un hébergeur.
Journalisée

Ex Newbie Contest Staff :
Nms
Status :
Concepteur d'épreuves
Citation :
Je ne sais qu'une chose : que je ne sais rien. (Socrate)
The KinG

Profil challenge

Classement : 19146/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 19


Voir le profil WWW
« #12 le: 19 Janvier 2007 à 21:04:44 »

Le code ne marche pas je comprend pas pourquoi
Je vous met les erreures à cas où cela vous eclaire...

Notice: Undefined index: pag3 in c:\documents and settings\baptiste\mes documents\include tests\pag3.php on line 6

Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\documents and settings\baptiste\mes documents\include tests\pag3.php on line 7

Je fais mes test en locale avec easyPHP.
Je veux inclure ma page-->pag3.php dans la page include.php.
Donc je tape ce code:

Code:
<?php

$page 
$_GET['pag3'];
include(
$page);

?>
Edit de the lsd : j'ai enlevé le nom, un peu d'anonymat ne fait pas de mal
Journalisée

G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
Nms

Profil challenge

Classement : 76/54319

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 794


Voir le profil
« #13 le: 19 Janvier 2007 à 21:13:33 »

J'ai comme le très légère impression que tu te mélanges gravement les pinceaux !
Si tu n'as pas d'index pag3 de défini (selon l'erreur) ca veut dire que tu appelles ton script directement sans paramètre passés dans l'url ! Or un include c justement le fait d'inclure une page que l'on a passée via l'url !
Donc ici, quelle est l'url exacte que tu as tapée dans ton browser ?
Journalisée

Ex Newbie Contest Staff :
Nms
Status :
Concepteur d'épreuves
Citation :
Je ne sais qu'une chose : que je ne sais rien. (Socrate)
The KinG

Profil challenge

Classement : 19146/54319

Néophyte
*
Hors ligne Hors ligne
Messages: 19


Voir le profil WWW
« #14 le: 19 Janvier 2007 à 22:07:21 »

Citation de: Nms
J'ai comme le très légère impression que tu te mélanges gravement les pinceaux !
Si tu n'as pas d'index pag3 de défini (selon l'erreur) ca veut dire que tu appelles ton script directement sans paramètre passés dans l'url ! Or un include c justement le fait d'inclure une page que l'on a passée via l'url !
Donc ici, quelle est l'url exacte que tu as tapée dans ton browser ?
Je n'ai pas tapé d'url dans la barre.
Je ne le fais pas car mon code ne fonctionne pas dès le début.

Voilà j'éspère que vous comprenez mon problème.
En tous cas merci pour l'aide ça fait toujours plaisir !
Journalisée

G33|< |810|v|) 54/\/5 B0|_|T0/\/ :-D
Pages: [1] 2
  Imprimer  
 
Aller à: