Tom's Guide > Forum > Programmation > [sérieux!] Pourriez-vous hacker mon site?

[sérieux!] Pourriez-vous hacker mon site?

Forum Programmation : [sérieux!] Pourriez-vous hacker mon site?

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Salut!

Je suis en train de finir le développement d'un de mes projets (il s'agit d'un CMS open-source), et je passe donc à la partie "sécuritée". Je voudrais donc savoir si vous pourriez essayer de hacker mon CMS. Nonon, c'est tout à fait vrai (allez sur la page d'acceuil, je confirme mes dires).

Le site est à la page: http://maeloun.free.fr/darkness
Vous pouvez télécharger les sources du CMS pour étudier la structure à l'adresse suivante: http://maeloun.free.fr/darkness/sources.zip
Si vous trouvez des failles, merci de me les envoyer à l'adresse: maeloun@yahoo.fr.

Après, si vous le souhaitez, je mettrais votre nom/pseudo dans la liste des contributeurs au projet.

A+!

Maeloun


Message édité par maeloun le 10-12-2006 à 19:42:16
------------------------------ TATAYEGOYO!!!
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

comment je fait pour faire mon forums pliz sur IFDN? je sais qu il faut faire nouveau sujet mais apres je suis pardu!
Dsl je suis or sujet!!

Répondre à linux772

@assat: pourquoi porc?

@linux772: euh...pas la bonne section, ici ;-)

------------------------------ TATAYEGOYO!!!
Répondre à maeloun

oui je C C juste pour te demander stp!

Répondre à linux772

peut-être, mais tu aurais pu créer un nouveau sujet pour demander (avec le bouton qui est tout en bas de la page, à coté d'ajouter un sondage). D'ailleurs, c'est ce que tu veux, non?

Si ce n'est pas le cas, écris-moi par MP ton problème en le détaillant plus précisemment (^v°)


Message édité par maeloun le 10-12-2006 à 20:29:36
------------------------------ TATAYEGOYO!!!
Répondre à maeloun

la vérification des mots clef présents dans la requête est foireuse : tu testes les mots un par un. Et dans l'histoire tu en oublies un sacré paquet dont un très important : DELETE

delete * from darkness_users; ça passe


Message édité par khayyam le 10-12-2006 à 20:36:27
Répondre à khayyam

Code :
  1. $dir_fonctions = opendir("./fonctions" );
  2.     while($fonctions = readdir($dir_fonctions)) {
  3.         if(is_file("./fonctions/".$fonctions)) {
  4.             include("./fonctions/".$fonctions);
  5.         }
  6.     }
  7.     closedir($dir_fonctions);



Ca me paraît un peu dangereux de faire ça... non ?
Si quelqu'un arrive à uploader un fichier dans le dossier fonctions, il est inclus directement dans la page...

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Code :
  1. if($_GET['action']=="login" && !empty($_POST['pseudo']) && !empty($_POST['password'])) {
  2.         $requete = mysql_query("SELECT `rang` FROM `darkness_users` WHERE `pseudo`='".$_POST['pseudo']."' AND `password`='".$_POST['password']."'" );
  3.         $requete = mysql_tri_tableau($requete,"incrementation" );
  4.         $_SESSION['user']['rang'] = $requete[0];
  5.         if($_SESSION['user']['rang'] != "" ) {
  6.             for($t=1; $t <= 50; $t++) {
  7.                 $_SESSION['user']['id_session'] .= strtolower(chr(rand(65,90)));
  8.             }
  9.         }
  10.         header("Location: index.php?id_session=".$_SESSION['user']['id_session']);
  11.     }



Tu ne fais pas de vérifications sur les valeurs POST pour le pseudo et le password.
On peut alors facilement passer Administrateur, en entrant dans le champs Login : ' OR rang='Administrateur, et la même chose dans le champs password.
Ce qui fait que ça va retourner forcément "Administrateur" comme rang, et on passe alors admin :)

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Omar, ça ne saute pas aux yeux mais sa fonction securiser_var (ou qqch comme ça) qu'il appelle un peu avant se charge de repérer certains mots clef pour éviter les injections.
cette vérification n'est pas très efficace, il oublie des mots clefs (comme le delete), et on peut tout à fait passer O"."R à la place de OR

Répondre à khayyam

non, il ne le fait qu'avec le tableau $_GET, pas avec le tableau $_POST (de mémoire, j'ai pas revérifié là)


Edith me signale qu'après vérification, il ne le fait que sur $_GET en effet :

Code :
  1. foreach($_GET as $nom => $valeur) {
  2.         $_GET[$nom] = securiser_var($nom);
  3.     }


Message édité par OmaR le 11-12-2006 à 12:38:31
------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

J'ai mis à jour le fichier de sécurisation des variables: la fonction est maintenant:

Code :
  1. <?php
  2.     function securiser_var($var)
  3.     {
  4.         $autorisees = array(
  5.             "id_session",
  6.             "option",
  7.             "action",
  8.             "name",
  9.             "newname" );
  10.         $oui = 0;
  11.         foreach($autorisees as $nom => $val) {
  12.             if(eregi($val,$var)) { $oui++; }
  13.         }
  14.         if($oui == 0) {
  15.             $_GET[$var] = bcmul($_GET[$var],1);
  16.         }
  17.         return $_GET[$var];
  18.     }
  19. ?>



De plus, il faut maintenant que les fonctions qui sont incluses soit également présentes dans une liste txt (php et javascript).

Enfin, j'utilise le codage md5 avant d'envoyer les données pour le login. Rien ne transite en clair. Vous pensez que ça va enlever le problème du [' OR `rang`='administrateur']?

Répondre à maeloun

Pour info hier ton mot de passe était en clair sur ton serveur ... aujourd'hui c'est son MD5 qui est sur le serveur ...
Or comme tu passes le MD5 dans l'URL ... il suffit de le mettre dans le header pour se connecter.
Bien sûr cela n'a pas grand chose à voir avec la robustesse de ton CMS ... c'était juste en passant en te demandant de remettre à jour le lien avec les dernières sources. ;)


Répondre à toam

le fichier ./ini/sql.ini n'est pas suffisamment protégé.
le htaccess peut avoir été désativé. il faut écrire du code php entre <? ?> à l'intérieur et pas simplement du texte.

Répondre à khayyam

Salut!
Et bah je prends bien note de toutes ces remarques!
comme promis, je vous citerais sur une page du site que je vais créer (avec mon cms ^^).
@+ les poteaux!

Répondre à maeloun

Salut!
Après un long moment d'absence, je suis revenu voir le nom des "debuggeur", et je me suis aperçu que j'avais sauté le post de Toam, qui signalait pourtant une faille importante.
Donc la faille est corrigée (tu parlais bien du fait qu'il était possible d'accéder au répertoire 'temp', ouvrir une sauvegarde de la base et en récupérer le contenu?).
Et je poste aussi le nouveau code (version quasi-finie). J'ai rajouté pas mal de fonctionnalitées (comme les langues).
http://darkcms.free.fr/downloads/darkness_v1.0.zip
Voilou.

@+!

ps: c'te fois-ci, j'active la notification de réponse ;-)

Répondre à maeloun
Tom's Guide > Forum > Programmation > [sérieux!] Pourriez-vous hacker mon site?
Aller à :

Il y a 391 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens