IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Tentative de hack par l'url !


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut Tentative de hack par l'url !
    Salut,

    J'ai un site sur lequel on a fait des tentatives de hack, dans les url ils ont ajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    book.php?b=16/**/union/**/select/**/1,2,3,4,5,6,7,8,9/**/from+user/**/
    une autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    book.php?b=999999.9+UNION+ALL+SELECT+0x31303235343830303536%2C0x31303235343830303536%2C0x31303235343830303536%2C0x31303235343830303536%2C0x31303235343830303536%2C0x3130323534383030
    une autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    book.php?b=9999+and+1%3D1
    allez, une dernière pour la route:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    book.php?b=16/**/union/**/select/**/1,2,3,4,5,6,version(),8,9/**/from+user/**/
    Il y a en a plus d'une cinquantaine comme ça !
    Mais dans mon code au tout début du fichier book.php, il y a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ($_POST as $key => $value) {
      $_POST[$key] = mysql_real_escape_string($value);
    }
    foreach ($_GET as $key => $value) {
      $_GET[$key] = mysql_real_escape_string($value);
    }
    Vous croyez que ca a suffit pour me protéger ? Qu'est qu'il a essayé de faire avec ces unions et autres codes bizarres comme 1%3D1 ?

    J'ai vérifié d'où venait l'addresse IP qui a fait ces tentatives de hack, et elle vient de : IRAN, ISLAMIC REPUBLIC OF

    Iran ! Y a pas grand chose à faire, non ? Je vais pas essayer d'avertir les autorités compétentes...non ?

    Merci pour votre éclaircissement

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    si tu as absolument protégé tous tes filtres avec mysql_real_escape_string(), je pense sincèrement que rien n'a été compromis. Dans tous les cas, regardes du côté du journal des requêtes exécutées sur le serveur mysql et tu devrais voir comment les données ont été présentées.

    J'avais lu un poste similaire sur cette attaque ici.
    Ensuite pour la suite à donner, je suis dubitatif quant à l'efficacité. Dépose une plainte pour tentative d'intrusion dans un système automatisé de traitement de données.
    J'avais gardé ce lien dans mes archives. Bon ça date mais tu auras déjà de quoi ronger un os.
    Essaies tant bien que mal de maintenir à jour tes versions de softs parce que les versions obsolètes sont à la longue dangereuses. Je t'invite quand même (si ce n'est déjà fait) à blinder à mort la gestion de tes logs tant du côté du PHP que de la base de données.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Points : 264
    Points
    264
    Par défaut
    Salut,

    Qu'est ce que tu veux dire par filtre ? Toutes les variables sont parsée mysql_real_escape()...

    Sinon, la personne avant de faire ces tentatives d'injection SQL était ici: (history_url)
    http://www.yougetsignal.com/tools/we...on-web-server/

    Donc, à mon avis ce n'est pas moi qui était visé mais plutôt le serveur sur lequel tourne mon site...pour peut-être attaquer un autre site.

    On peut accéder au journal des requêtes exécutées sur le serveur mysql avec phpMyadmin ?

    Merci.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    si t'es en utf8 pense bien a mettre le mysql_set_charset qui lui agis aussi le mysql_real_escape_string

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Juste pour expliquer les codes "bizarres"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    book.php?b=9999+and+1%3D1
    L'idée est d'ajouter 1=1 comme condition dans une requête. Comme 1=1 est toujours vrai, ça supprime toutes les autres conditions de ta requête et retourne toute(s) la(les) table(s) de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    book.php?b=16/**/union/**/select/**/1,2,3,4,5,6,7,8,9/**/from+user/**/
    L'idée cette fois est d'ajouter l'affichage de ta table des utilisateurs, pour récupérer au moins les identifiants et des informations comme les adresses, voire les mots de passe si ils sont stockés en clair (ce qui n'est pas une bonne idée)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    pour que tu y vois plus clair dans les requetes de l'url : cherche "asciifull" comme image


    pour l'explication book.php?b=9999+and+1%3D1
    dans la colonne "Hx" (de l'image) tu cherche 3D (tu vois que ca correspond au caractere '=')
    donc %3D sera interprete comme un '='.
    => donc ca donnera le fameux 1=1 explique par Celira
    (c'est souvent utilise.)
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  7. #7
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Petite note au passage : utiliser PDO et les requêtes préparées aide grandement à se prémunir de ce genre de plaisanteries....
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

Discussions similaires

  1. recupere un valeur envoyé par une url
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/12/2005, 05h44
  2. PB de Transfert de données par l'URL
    Par TUX01 dans le forum Langage
    Réponses: 4
    Dernier message: 02/12/2005, 16h04
  3. Savoir la taille d'un fichier pointé par une URL
    Par jeje99 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 15/11/2005, 18h35
  4. transmettre une valeur par l'url
    Par Destampy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 07/06/2005, 15h57
  5. Rendre invisible les valeurs passant par l'URL
    Par Jones dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/11/2004, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo