s'assurer d'un include

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ben3w, 3 Novembre 2006.

  1. ben3w
    ben3w Nouveau WRInaute
    Inscrit:
    24 Juillet 2003
    Messages:
    18
    J'aime reçus:
    0
    hello

    Avant de faire une bétise, j'aimerais avoir vos avis

    Dans un fichier php, on trouve le code suivant :

    ...
    include ("toto.php");
    ...

    Je veux que le code contenu dans toto.php ne soit exécuté QUE lors d'une inclusion de ce type. Je veux bloquer l'exécution du code contenu de toto.php si on saisit son URL directement dans le navigateur

    merci d'avance pour vos idées
     
  2. Tilt
    Tilt WRInaute impliqué
    Inscrit:
    26 Mars 2005
    Messages:
    752
    J'aime reçus:
    0
    dans le fichier d'appel:
    <?
    $a=1;
    include("toto.php");
    ?>
    dans le fichier inclus:
    <?
    if ($a==1) {
    //tout ton code
    }
    ?>
     
  3. colonies
    colonies WRInaute impliqué
    Inscrit:
    10 Septembre 2006
    Messages:
    675
    J'aime reçus:
    111
    ouais, à condition d'avoir register_global sur off, même si deviner qu'il faut avoir une variable $a à 1 n'est pas chose aisée.
    Mieux vaut définir une constante.

    if ( !defined('IN_WEBAPP') )
    {
    die('keudalle');
    }
     
  4. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    Dans tous les fichiers censé appelé ton include tu met par exemple :

    Code:
    define('JE_SUIS_UNE_CONSTANTE', true);
    Dans la page toto.php tu met ce code :



    Code:
    if	(!defined('JE_SUIS_UNE_CONSTANTE') ) {
    	
    	/* Initialisation des variables */	
    	// message pour le visiteur
    	$messVisiteur  = '<div align="center"><p><strong><font color="#FF0000">Tentative de hacking avortée.</p>';
    	$messVisiteur .= '<p>L\'administrateur du site à été prévenu de cette tentative d\'intrusion.</font></strong></p></div>';
    	// message pour l'admin
    	$messAdmin  = 'Page demandée : '.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']."\n";
    	$messAdmin .= 'Adresse ip du visiteur : '.$_SERVER['REMOTE_ADDR']."\n";		
    	$messAdmin .= 'Navigateur utilisé : '.$_SERVER['HTTP_USER_AGENT']."\n";
    	// en-tête de l'e-mail
    	$header  = 'From: '.no-reply@exemple.com."\r\n";
    	$header .= 'Reply-To: '.no-reply@exemple.com."\r\n";	
    	// autres variables
    	$sujet			= 'Tentative d\'accès à la page'.$_SERVER['REQUEST_URI'];
    	$destinataire	= admin@exemple.com;
    	
    	mail($destinataire, $sujet, $messAdmin, $header); // envoi d'un e-mail à l'administrateur
    	exit($messVisiteur); // sortie avec affichage du message
    	}
     
  5. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Merci pour ce code !
     
  6. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    Content de t'avoir rendu service.

    Tu me dois 1 euro :mrgreen:
     
  7. ben3w
    ben3w Nouveau WRInaute
    Inscrit:
    24 Juillet 2003
    Messages:
    18
    J'aime reçus:
    0
    'pécable, ça !

    je comptais faire la même chose avec une variable, et m'assurer qu'elle était bien parmi celles définies dans $_GET (pour que ca marche aussi si register_globals = on)

    ca à l'air bien plus simple avec le coup de la constante

    merci
     
  8. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    Une variable ; ça peut se modifier...
    Une constante ; on ne peut pas la modifier
     
  9. ben3w
    ben3w Nouveau WRInaute
    Inscrit:
    24 Juillet 2003
    Messages:
    18
    J'aime reçus:
    0
    tiens, je viens de trouver par accident une autre solution, elle m'a bien fait rire :

    dans le fichier qui appelle toto.php, on déclare une fonction quelconque
    on appelle cette fonction dans toto.php

    fatal error ... ca a l'air efficace !
     
  10. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Payable par chèque ? :D
     
  11. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    Pour me faire un chèque en bois ??
    Je ne prend que les espèces... ( à moins que tu ne sois une fille ;) )
     
  12. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    En fait par ce moyen, tu appelle de nouveau une foinction déjà déclarée.

    Tu ne fais que provoqué une erreur.

    La solution que je te propose permet d'une part de ne rien exécuter de toto.php, et de t'envoyé un e-mail pour te prévenir.
     
  13. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Et si je te donne un lien sur un page rank 5 ^^ ? :D
    Non non je ne suis pas une fille :lol:
    Et si je te payais en pièce de 1 centime ! :eek:
     
  14. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    oui :arrow:
    :arrow: dommage :cry:
    :arrow: ok, mais tu me l'envoi par la Poste :lol:
     
  15. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    c'est carrement débile comme système

    je suis désolé, je vous aime bien mais là ça fait quand 5 minutes que je m'éclate de rire sans parvenir à m'arreter
    :D

    comment est-il possible de faire une verification dans le fichier inclus

    donc si j'inclue ma backdoor il n'y a plus de verification ??
    :D

    [​IMG]

    rog
     
  16. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    gné ?

    si la page qui s'occupe de l'inclusion n'est pas appellée cela signifie que l'on tente une ouverture directe sur le fichier, et de ce fait on ne fait pas le traitement.. le raisonnement et le fonctionnement sont bon!

    après si tu appel la page qui s'occupe de l'inclusion, ben tu passe par le bon chemin et donc l'ouverture et "légal" par rapport à ton système.

    je ne vois pas ou est le pb rog ?
     
  17. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    je pense que tu cherche à m'achever !!

    rog
     
  18. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    non, simplement à comprendre ce qui ta fait rire :?:
     
  19. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    +1

    Si cette vérif à une faille, j'aimerais la connaître !
     
  20. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    ouf
    ça c'est calmé
    -------------------

    c'est une question d'héritage

    si le fichier toto est enfant d'index

    l'action include est fait par le parent et c'est l'enfant qui verifie

    si je spoof l'enfant, il n'y a plus de verification

    c'est obligatoirement le parent qui doit filtrer

    rog
     
  21. colonies
    colonies WRInaute impliqué
    Inscrit:
    10 Septembre 2006
    Messages:
    675
    J'aime reçus:
    111
    rog> au lieu de faire ton branleur, tu devrais essayer de comprendre la question de départ.
     
  22. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    si tu spoof ? c'est à dire ?

    le parent permet le filtrage...sans le parent je vois pas comment tu peux appeller un enfant..

    à par ton truc de spoof mais là faut m'en dire plus ???
     
  23. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    L'enfant vérifie qu'une constante (et non une variable) existe...

    Comment ouvrir l'enfant sans l'existence de cette constante ??

    Je souhaiterais bien en savoir un peu plus.

    Je sais que les failles sont nombreuses, mais là j'aimerais comprendre la faille d'une telle protection...
     
  24. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    :arrow: Rog :

    Je te laisse l'adresse du père qui t'autorisera de parlé à l'enfant.
    edit medium69 lien supprimé

    Si tu parviens à accéder à l'enfant sans le père, je te laisse m'indiqué la réplique qu'il te dira ici.
     
  25. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Excellent ! :lol:
     
  26. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    Mais il à une autre réplique si on arrive à le "kipnappé" :wink:

    C'est celle que j'attend sur Wri en réponse.
     
  27. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    je vais encore me faire engueuler par olivier duffez, il n'aime pas qu'on parle de hacking ici

    pour resumer :

    toutes les démarches pour que l'enfant (toto.php) detecte une anomalie sont vaines

    si je bypass les restrictions d'index.php (le parent) et fais inclure mon C99.php

    le code de detection de l'enfant (toto.php) n'etant plus appelé donc pas interprété ne pourra pas detecter quoi que ce soit

    rog
     
  28. petit-ourson
    petit-ourson WRInaute impliqué
    Inscrit:
    31 Mai 2004
    Messages:
    680
    J'aime reçus:
    0
    Tu mets tous tes includes qui ne doivent pas directement être appelés dans un répertoire sur lequel tu appliques un ".htaccess" qui contiendra l'instruction "deny from all" et personne ne pourra exécuter ton include directement (et ça me semble plus sécurisé et moins "bidouilleux" que toutes les autres propositions).

    (pfou ... ma phrase était longue)
     
  29. medium69
    medium69 WRInaute passionné
    Inscrit:
    7 Mai 2005
    Messages:
    1 940
    J'aime reçus:
    3
    Je reconnais que je n'y avais pas pensé...
    En fait cela se résumerais à peu près à cela ?

    Code:
    SetEnvIfNoCase Request_URI \.ht(access|passwd)$ deny
    SetEnvIfNoCase Request_URI toto\.php$ deny
    <Files ~ "^.*$">
    order allow,deny
    allow from all
    deny from env=deny
    </Files>
     
  30. petit-ourson
    petit-ourson WRInaute impliqué
    Inscrit:
    31 Mai 2004
    Messages:
    680
    J'aime reçus:
    0
    euh ... moi je le résumerai à :

    Code:
    deny from all
    
    Le reste est tout logiquement gérer dans la configuration d'apache (par défaut même si je ne m'abuse).

    Il faut bien sûr réservé ce répertoire aux fichiers appelé dans des scripts et uniquement à eux.
     
  31. ben3w
    ben3w Nouveau WRInaute
    Inscrit:
    24 Juillet 2003
    Messages:
    18
    J'aime reçus:
    0
    rog, j'a pas compris ton truc, là ... Je vois toujours pas en quoi le code mis dans toto.php ne serait pas efficace si ce dernier est appelé directement ...

    petit-ourson, je suis d'accord, c'est une solution plutot fiable le htaccess, mais j'aimerais l'éviter. Comme dit au début, c'est pour un script que je diffuse. D'expérience, je sais les utilisateurs de ce script (qui n'est pas destiné à des informaticiens) n'auront pas envie d'aller mettre un htaccess en place sur leur site
     
  32. colonies
    colonies WRInaute impliqué
    Inscrit:
    10 Septembre 2006
    Messages:
    675
    J'aime reçus:
    111
    d'ailleurs il est possible qu'ils n'aient même pas le droit de créer un htaccess sur un mutu.

    quant aux avertissements de rog... bah lis un peu ce qu'il poste, tu vas cerner le personnage ;-)
     
  33. shinmei
    shinmei Nouveau WRInaute
    Inscrit:
    22 Octobre 2006
    Messages:
    21
    J'aime reçus:
    0
    Ce n'est pas du tout le sujet.

    Tu nous parle d'une faille include dans index.php qui pourrait etre présente (et pourquoi pas) mais il ne s'agit pas du tout de se prémunir de se genre d'attaque. Partant de ce principe, on considère que tu n'arrive pas à inclure ton reverse shell.

    Le sujet est simplement d'empecher d'appeler directement des enfants pour auditer le code (a priori la connexion base de données échouerait (configurée en amont) et cela permettrait de regarder un peu les requetes en vue de faire du SQL INJECTION).

    La vérification de la présence d'une variable globale est un moyen réellement efficace, afficher un message d'avertissement ne dissipera les motivations que des scripts kiddies qui attaquent sans passer par un proxy, soit une trait faible minorité. On ne peux tout de même pas faire beaucoup mieux :D

    Salutations,
    ShinMei.
     
Chargement...
Similar Threads - assurer include Forum Date
comment s'assurer que quelqu'un est le propriétaire d'une boutique Développement d'un site Web ou d'une appli mobile 31 Mai 2013
Comment s'assurer que ma marque n'est pas achetée ? AdWords 11 Décembre 2012
Comment m''assurer que Google analytics fonctionne? Google Analytics 3 Octobre 2011
S'assurer de la lecture d'un texte avant envoi de mail Développement d'un site Web ou d'une appli mobile 17 Février 2011
webmaster: comment s'assurer que le client va payer Droit du web (juridique, fiscalité...) 19 Janvier 2010
assurer de la dispo avec 2 serveurs Administration d'un site Web 27 Septembre 2007
Google se fait pédagogue pour rassurer: Cookies, IP et logs Google : l'entreprise, les sites web, les services 10 Août 2007
Juste pour me rassurer Débuter en référencement 9 Juin 2007
Comment s'assurer de l'identité d'un membre ? Administration d'un site Web 21 Février 2007
Comment s'assurer que le embed marchera partout ? Développement d'un site Web ou d'une appli mobile 9 Décembre 2005
Google indexe le dossier /wp-includes/ Crawl et indexation Google, sitemaps 27 Mars 2022
WordPress Bloquer ou non WP include dans le robots.txt ? Référencement Google 5 Septembre 2018
require ou include sont-ils conditionnels ? Développement d'un site Web ou d'une appli mobile 10 Novembre 2017
[Wordpress] Google indexe le dossier /wp-includes/ Débuter en référencement 25 Mai 2017
Problème avec include Demandes d'avis et de conseils sur vos sites 11 Avril 2016
Autoriser l'accès que pour include. Développement d'un site Web ou d'une appli mobile 9 Janvier 2015
Include ou filegetcontent ? Développement d'un site Web ou d'une appli mobile 15 Novembre 2014
10-15 includes par page appelée, c'est trop? Développement d'un site Web ou d'une appli mobile 21 Mai 2014
Fichier php include Développement d'un site Web ou d'une appli mobile 16 Mai 2014
[PHP] Condition et include Développement d'un site Web ou d'une appli mobile 31 Janvier 2013