Tom's Guide > Forum > Programmation > faille ou pas ?
Mot :    Pseudo :           
 

Bonjour,
c'est peut être une question bête, mais j'ai remarqué quelque chose sur mon site (en local): j'ai mis une pagination sur l'index, comme sa:

Code :
  1. http://localhost/monsite/index.php?page=numéro de la page




es-ce que c'est normal que quand je tape

Code :
  1. http://localhost/monsite/index.php?page=http://google.fr




c'est écrit:

Code :
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\monsite\news.php on line **





je ne devrai pas être redirigé vers l'index ? Car quend j'essaye de faire ça sur d'autres sites je suis automatiquement redirigé vers l'index


Message édité par superjordan le 03-02-2008 à 01:52:27
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

C'est normal !
dans ton include, tu a preciser une extension. Php, ou TXT je sais pas...
pour tester, il te faut une page dont l'extensions est .php (ou autre c toi qui a choisit dans le code de l'include)
ma page de test est celle la : http://trust-in-us.fr/test.php
essaye sans le .php
met donc /?page=http://trust-in-us.fr/test
Si il t'affiche le texte et l'image, t'es vulnerable, sinon t'es protégé !
apres pour mettre une redirection euh ca doit etre quelque chose du genreelse {
include("index.php" );
}

------------------------------ http://trust-in-us.fr/blog_nico Un blog, un vrai... pas un skyblog !
Répondre à tinico56

salut,
j'ai essayé, et apparament je ne suis pas vulnérable puisque le texte et l'image ne s'affiche pas
merci à toi

Répondre à superjordan

Quand ton site sera en ligne, envoi moi l'url, j'te dirais si il y a une faille ;)
j'ai trouvé un site avec une faille include cet aprem.. fais gaffe avec ca, car TOUT mais alors TOUT est modifiable avec l'upload d'une page qu'on appelle backdoor...

enjoy

------------------------------ http://trust-in-us.fr/blog_nico Un blog, un vrai... pas un skyblog !
Répondre à tinico56

A mon avis, ça sent la grosse faille à plein nez.
Car pour avoir une erreur mysql, ça veut dire que tu ne traites pas pour voir si oui ou non le numéro de page est un chiffre, et si c'est pas un chiffre, tu mets 1.

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

voici mon script:

Code :
  1. <?php
  2. mysql_connect("localhost", "root", "" );
  3. mysql_select_db("site" );
  4. $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
  5. while ($donnees = mysql_fetch_array($retour))
  6. // PAGINATION
  7. $nombreDeMessagesParPage = 5;
  8. $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM news');
  9. $donnees = mysql_fetch_array($retour);
  10. $totalDesMessages = $donnees['nb_messages'];
  11. $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
  12. //PAGINATION
  13. if (isset($_GET['page']))
  14. {
  15.         $page = intval($_GET['page']);
  16. }
  17. else
  18. {
  19.         $page = 1;
  20. }
  21. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  22. $reponse = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage) or die(mysql_error($page = 1));
  23. while ($donnees = mysql_fetch_array($reponse))
  24. {
  25. $contenu = nl2br(stripslashes($donnees['contenu']));
  26.         echo '<h2>';
  27.         echo $donnees['titre'];
  28.         echo '</h2>';
  29.         echo '<div class="descr">Postée le ';
  30.         echo date('d/m/Y à H\hi', $donnees['timestamp']);
  31.         echo '</div>';
  32.         echo '';
  33.         echo $contenu;
  34.         echo '<br><br><br>';
  35. }
  36.     echo '<FORM name="formulaire" method="POST"><select size="1" name="url" onChange="navigation()" style="color:#BDB76B; width:50px; border:0px; background:#111111;">';
  37. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  38. {
  39.   echo '<option value="index.php?page=' . $i . '">' . $i . '</option>';
  40. }
  41.   echo '</select></form><br><br><noscript>Si vous voulez que le sélécteur de page fonctionne, vous devez activer le javascript</noscript>';
  42.  
  43.  
  44. mysql_close();
  45. ?>





j'ai rajouté:

Code :
  1. or die(mysql_error($page = 1))


maintenant quand je remplace le chiffre par un numéro de page inexistant, je n'obtient plus l'erreur, es-ce que c'est bon ?

Répondre à superjordan

Euh, non faut pas rajouter ça...
Sinon, en fait ça vient de ton intval($_GET['page']), vu qu'il n'y a aucun chiffre, ton intval doit retourner 0 je pense, donc tu fais une requête LIMIT -5,5 ce qui est incompréhensible en SQL.
Remplace

Code :
  1. $page = intval($_GET['page']);


par

Code :
  1. $page = intval($_GET['page']);
  2. if($page==0) $page=1;
 

Et supprime ton or die(mysql_error($page=1)).

  

Edit: par contre le début de ton code est incompréhensible...

Code :
  1. $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
  2. while ($donnees = mysql_fetch_array($retour))
  3. // PAGINATION
  4. $nombreDeMessagesParPage = 5;
 

Utilité ?


Message édité par OmaR le 04-02-2008 à 09:36:34
------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

merci, pourquoi le début est incompréhensible ?

Répondre à superjordan

tu fais une requête que tu n'utilises même pas.
T'as un while qui sert à rien vu qu'il a pas de crochet, il exécute que l'instruction suivante, soit redéfinir 5 fois $nombredeMessagesParPage = 5, super essentiel comme étape.
Essaie de mettre une boucle de 1000 histoire que tu sois sûr que la variable soit bien définie


Message édité par OmaR le 04-02-2008 à 23:13:30
------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR
Tom's Guide > Forum > Programmation > faille ou pas ?
Aller à :

Il y a 974 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