N-PN White-Hat Project
Site de fleur By me - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Communauté (https://dev.n-pn.fr/forum/forumdisplay.php?fid=10)
+--- Forum : Faites tester vos sites (https://dev.n-pn.fr/forum/forumdisplay.php?fid=21)
+--- Sujet : Site de fleur By me (/showthread.php?tid=2902)

Pages : 1 2


Site de fleur By me - airday - 13-04-2013

Salut,

Je vous fait part de mon site que j'ai fait en BTS, les sites de mes camarades ont pas mal de failles.

Moi j'en ai profité pour accentué la sécurité.

Je pense que le site a quand même des failles, mais j'ai essayer de limité la casse par rapport à mes collègues de classes Big Grin

http://airday.alwaysdata.net/lafleur

J'ai essayer de chercher les failles avec mon propre savoir, du coup je pense qu'il y a des choses que je n'ai pas teste car je n'ai surement pas les connaissances pour.

P.S : http://airday.alwaysdata.net/lafleur/npn // Cela certifie que c'est mon site Smile

Merci de votre aide.


RE: Site de fleur By me - Sh4dows - 13-04-2013

Salut,

J'ai juste testouille la form d'inscription et en mettant un peu de la m**** on découvre immédiatement une petite XSS permanente :
Code :
Pseudo : "><h1>TEST</h1><!--

Le résultatest le suivant, dis moi si c'est normal mais j'en doute Tongue
[Image: 1365885401-screenshot-from-2013-04-13-22-34-37.png]


RE: Site de fleur By me - Swissky - 13-04-2013

Dejà tu devrais mettre un captcha http://airday.alwaysdata.net/lafleur/se_connecter/enregistrer


RE: Site de fleur By me - airday - 13-04-2013

Merci de ton aide, j'ai juste oublier de protéger les champs contre le XSS.
Je me suis concentré sur les injections SQL seulement, en tout cas merci Wink

@Swissky : au faite c'est un projet d'ecole, du coup j'en aurai pas trop besoin.


RE: Site de fleur By me - Sh4dows - 13-04-2013

De plus j'ai cette erreur avec un "string" au lieu du numéro de téléphone, il faut que tu améliores la communication avec l'utilisateur en lui disant par exemple qu'il est obligé de remplir ce champ. Là on dirait que tu enregistres tout directement dans ta database >< :
Citation :>Warning</b>: PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'phone' cannot be null in <b>/home/airday/www/lafleur/model/BDD.model.php</b> on line <b>95</b><br />



RE: Site de fleur By me - airday - 13-04-2013

@Sh4dows : Merci encore, je découvre pas mal de bug Big Grin,
j'essaie de faire des modification, je pense que j'ai mal code ma condition:
Code :
if(isset($_POST)){
// trop de "if" se suivent dans mon code, je pense que c'est pas bon :D
// c'est ce qui crée tout cela
}



RE: Site de fleur By me - Polo - 14-04-2013

Tiens, je crois que y'a une couille dans l'paté : j'ai manifestement saisi un mot de passe invalide (<7 caractères) du coup j'ai une erreur à l'inscription, et dans le même temps il me dit que mon compte à bien été crée (et c'est tout à fait vrai) Tongue
Donc j'ai pas zyeuté plus que ça mais voilà y'a déjà ça à corriger Smile

EDIT :
(13-04-2013, 22h54)airday a écrit : @Sh4dows : Merci encore, je découvre pas mal de bug Big Grin,
j'essaie de faire des modification, je pense que j'ai mal code ma condition:
Code :
if(isset($_POST)){
// trop de "if" se suivent dans mon code, je pense que c'est pas bon :D
// c'est ce qui crée tout cela
}
Ce n'est pas forcément le nombre de conditions imbriquées qui importe au niveau du fonctionnement technique de ton code (quoique) c'est surtout l'utilité qu'elles ont (elles en ont bien une n'est-ce pas ? ^^ ).


RE: Site de fleur By me - airday - 14-04-2013

En tout cas, merci de votre aide, cela m'a beaucoup aidé, je vais corriger les petites erreurs tout à l'heure Smile


RE: Site de fleur By me - Sh4dows - 14-04-2013

(14-04-2013, 00h03)Polo a écrit : Tiens, je crois que y'a une couille dans l'paté : j'ai manifestement saisi un mot de passe invalide (<7 caractères) du coup j'ai une erreur à l'inscription, et dans le même temps il me dit que mon compte à bien été crée (et c'est tout à fait vrai) Tongue
Donc j'ai pas zyeuté plus que ça mais voilà y'a déjà ça à corriger Smile

EDIT :
(13-04-2013, 22h54)airday a écrit : @Sh4dows : Merci encore, je découvre pas mal de bug Big Grin,
j'essaie de faire des modification, je pense que j'ai mal code ma condition:
Code :
if(isset($_POST)){
// trop de "if" se suivent dans mon code, je pense que c'est pas bon :D
// c'est ce qui crée tout cela
}
Ce n'est pas forcément le nombre de conditions imbriquées qui importe au niveau du fonctionnement technique de ton code (quoique) c'est surtout l'utilité qu'elles ont (elles en ont bien une n'est-ce pas ? ^^ ).
Exacte, par exemple pour vérifier qu'une variable existe il existe isset(), puis pour vérifier que celle-ci ne soit pas NULL nous avons empty().

Beaucoup utilisent les deux séparement or en vérifiant le contenu d'une variable on vérifie forcément que celle-ci existe si je ne m'abuse !!

Du coup tu pourrais faire :
Code PHP :

<?php
if(!empty($_POST['varname'])){
     /* Si la variable POST existe et n'est pas vide, ici ton code */
}
 



RE: Site de fleur By me - airday - 14-04-2013

Je pense que le probleme doit venir de là.
Apres le :
Code :
if(isset($_POST)){
J'ai rajouté cette ligne :
Code :
strip_tags(htmlspecialchars(addslashes(extract($_POST))));

Je ne sais pas pourquoi j'ai fait ca Big Grin

Et en effectivement, j'ai ajouter des
Code :
if(isset($_POST['var']))
au lieu de
Code :
if(!empty($_POST['var']))

J'aurai mieux fait d'utiliser CodeIgniter ou CakePHP :p
Je l'ai coder tout seul, enfin j'ai encore beaucoup de chose à apprendre.

Merci en tout cas a vous tous, si vous pouviez m'explique comment je pourrais diminuer encore plus la casse, Smile


RE: Site de fleur By me - Luxerails - 14-04-2013

(14-04-2013, 12h40)airday a écrit : J'ai rajouté cette ligne :
Code :
strip_tags(htmlspecialchars(addslashes(extract($_POST))));

wtf ? o_O

Premièrement, je ne vois pas trop ce que tu as voulu faire par là, extract() renvoie un int (le nombre de valeurs dans l'array $_POST?) donc faire un strip_tags(htmlspecialchars(addslashes())) dessus...
Deuxièmement, c'est TRÈS dangereux. extract($_POST) va transformer tout les variables post du style a=1&b=2 en $a = 1 et $b = 2 → on peut créer, modifier, écraser des variables.


RE: Site de fleur By me - InstinctHack - 14-04-2013

fait plutot un
Code PHP :

if(count($_POST)>0)
echo "des datas ont été envoyées";
else
echo "rien à l'horizon".
 


@luxerails, il tente de ré-inventer les register_globals Big Grin


RE: Site de fleur By me - airday - 14-04-2013

Bon la seule solution que j'ai trouve été de créer une petite fonction :
Code :
    function estChaine($valeur, $num){
        $ok = null;
        if(isset($num) && $num == true){
            $ok = preg_match("/[^a-zA-Z0-9\s]/", $valeur) == 0;
        }else{
            $ok = preg_match("/[^a-zA-Z]/", $valeur) == 0;
        }
        return $ok;
    }

Je ne savais pas faire autrement, mais pour l'instant cela fonctionne.
Je pense que je devrais l'améliorer un peu plus.

Pour ce projet, mon binome a fait une application C# qui gere l'administration du site etc..., je lui ai imposé.
Pensez vous qu'on peut quand même exploiter le peu de failles qui reste sur le site ?
Encore merci à tous Smile


RE: Site de fleur By me - InstinctHack - 15-04-2013

tu devrais regarder du coté des fonctions ctype, tu te rendras compte que tu réinvente la roue (tu sais, t'es pas le premier à programmer en PHP, les fonctions de bases sont déjà codés)

de plus "if(isset($num)" est inutile, si tu met pas le bon nombre d'arguments obligatoire lors d'un appel à une fonction, php vas gueuler.


RE: Site de fleur By me - airday - 15-04-2013

@InstinctHack : merci beaucoup, là c'est la chose qui m'a beaucoup aidé, j'ai gagné plusieurs lignes.
Je ne connaissais pas, merci j'en apprend toujours beaucoup avec vous tous Smile