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 :

[Sécurité] Est-ce une tentative de piratage ?


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut [Sécurité] Est-ce une tentative de piratage ?
    Bonjour,

    Voilà quelques jours que je reçois dans ma base de données ce genre de code, depuis un formulaire permettant de proposer des liens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="us-ascii"MIME-Version: 1.0Content-Transfer-Encoding: 7bitSubject: beams, one crossing thebcc: charleses3299@aol.comd13de850a74367b379985dc119d1a27e.
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isContent-Type: text/plain; charset="us-ascii"MIME-Version: 1.0Content-Transfer-Encoding: 7bitSubject: good hasbcc: charieses329@aol.comd093f35780f88e28c789f9053e6a4be5.
    Ce qui est très bizarre, c'est que l'email qui envoie cela est de la forme
    the4255@lenomdeMonsite.com (par exemple, cela change souvent ,mais le nom de domaine est toujours celui de mon site).

    Comment des emails peuvent-ils être générés avec pour nom de domaine mon propre site internet ?

    Quel est l'objectif de ce code ?


    Aussi, ce code est filtré par htmlentitites puis demande une validation par email être affiché sur le site, mais là il n'y a même pas de page sur lequel il puisse s'afficher. Et je reçois les demandes de validation dans ma boite email qui n'est même pas celle correspondant à l'adresse fournie par le qui s'amuse à jouer avec mon formulaire.
    C'est pas parce que j'ai tort que vous avez raison.

  2. #2
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    pour protéger tes données de ta base n'utilise pas htmlentities, mais :
    mysql_real_escape_string

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Oui je vais le rajouter sur la nouvelle version que je termine, ceci dit htmlentities est bien aussi puisque dans ce cas, le code est désactivé grace à elle.

    Mais ce code, c'est quoi justement ?

    Comment le gars génère t'il des adresses email avec mon site pour domaine ?

    Merci pour vos réponses
    C'est pas parce que j'ai tort que vous avez raison.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    J'ai fait une recherche sur google avec le mail mentionné dans le code du dessus : charleses3229@aol.com

    Apparemment il semble que le gars ai l'habitude de cela, j'ai retrouvé son code pourri sur plein d'autres site.

    Qu'est-ce qu'il fait ainsi ?
    C'est pas parce que j'ai tort que vous avez raison.

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Aucune idée mais ce sera toujours intéressant si tu trouves... :p

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    ca permet de voir si tu utilise le contenu de ton formulaire pour injecter directement dans un en tete de CGI de mail... si c'était le cas, le gars recevrait en copie cachée invisible (bcc) un mail provenant... d'un mail avec ton site en provider... donc il saurait de quel site il vient.

    Une fois detecté, il n'a plus qu'a refaire la meme chose pour envoyer des mails sur n'importe quoi a n'importe qui via ton site... donc "plus" difficilement tracable.

    Une application simple est... du spam.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Merci pour ta réponse,

    ça ne m'étonnerait pas que ce soit du spam, car j'ai déjà reçu des emails du type sex@monsite.com
    C'est très désagréable, d'autant plus que je ne fais pas dans le porno.

    Mais je n'ai pas bien compris le fonctionnement.

    Le gars envoit ce code et si jamais mon script envoit un email, alors il reçoit une copie de ce mail et trouve des informations qui lui permettent d'envoyer autant d'emails qu'il le souhaite avec mon nom de domaine ?

    Je veux bien d'avantage d'explication parce que c'est très intéressant.
    Et bien sur, comment parer cela? à priori le htmlentities n'a pas d'effet dans ce cas?
    C'est pas parce que j'ai tort que vous avez raison.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations forums :
    Inscription : Décembre 2005
    Messages : 186
    Points : 133
    Points
    133
    Par défaut
    Le gars utilise une des failles de la fonction mail, il peut rajouter son propre destinatoire, sujet de message etc. Il y a un article interessant à ce sujet : http://www.phpsecure.info/v2/article/MailHeadersInject.php

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Je viens de lire le lien (merci), je n'ai pas tout compris.

    Une question :

    Si je place une fonction qui recherche parmi les valeurs entrées par l'utilisateur/hacker, la chaine "Content-Type:multipart/mixe" (qui semble être utilisée systématiquement pour cette magouille).

    Et si cette fonction, détectant cette chaine de caractère, bloque tout. Est-ce que ça supprime les risques ?

    Et le htmlentities que j'utilise, à priori il ne fait aucun effet alors ? pourquoi ?
    C'est pas parce que j'ai tort que vous avez raison.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations forums :
    Inscription : Décembre 2005
    Messages : 186
    Points : 133
    Points
    133
    Par défaut
    Je pense que supprimer "Content-Type:multipart/mixe" n'est pas suffisant, car tu as plusieurs types d'attaques possible, c'est pas dit que le gars va automatiquement tenter de rajouter dans le header de ton mail le "Content-Type:multipart/mixe", si il souhaite simplement utiliser ton site pour un envoi massif de mail au format text, il rajoutera pas le multipart par exemple. Il peut tout simplement tenter (comme dans l'article) si tu autorise de remplir le champ de destination de se rajouter en copie en ajoutant le champ Cc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "email@anonymous.com%0ACc:email1@website1.com%
    Vu que les données proviennent de tes champs de formulaires, tu peux tenter de les filtres avec des str_replace ou des expressions régulières (filtrer le contenu de type Bcc, Cc, etc). Si tu veux tu peux carrément empecher l'envoi du mail si tu detectes des caracteres succeptibles d'être une tentative de hack.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Oui je pense que je vais utiliser les expressions régulières pour vérifier que les informations entrées dans le formulaire sont bien de la forme nom, prénom et mail@domaine.com .

    Avec en plus un système de blocage de l'ip en cas de double soumission en moins de 20 secondes.

    Tout cela devrait être suffisant je pense.


    En tout cas merci pour tes informations, je suis soulagé de savoir ce qu'est ce code et je vais pouvoir faire le nécessaire.


    Si vous avez d'autres informations/solutions n'hésitez pas, je ne marque pas" résolu" tout de suite.
    C'est pas parce que j'ai tort que vous avez raison.

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu dois valider très précisément tes données.
    Utilises les expressions régulières pour tester la validité d'une adresse http, ou d'un mail. Si cela ne passe pas, renvoie le formulaire. Ton spammer ira voir ailleurs.
    Cela montre encore une fois l'absolue nécessité de valider drastiquement les données fournies par l'utilisateur, surtout si elle doivent être réutilisées pour un mail ou un lien (voir les attaques XSS).

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Je suis d'accord avec ce que tu dis, même si c'est du boulot.

    Mais comment tu fais quand il y a un textarea censé permettre d'envoyer du contenu libre ?
    C'est pas parce que j'ai tort que vous avez raison.

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Si c'est un textarea, il ne sera pas utilisé dans une fonction (mail, lien...).
    Les deux gros risques sont l'injection sql et le XSS.
    1) injection sql : passage par mysql_real_escape_string() avant insertion en bdd
    2) XSS : passage par htmlentities() avant affichage.

  15. #15
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    du calme, du calme ;o)

    pour que ca fonctionne, il faut que tu utilise une variable de ton site pour composer l'entete d'un mail.

    En général, tout ce qu'on met dans un en tete de mail devant d'une variable est :

    * Le titre : htmlentities suffit ici
    * L'adresse du destinataire ou de l'expediteur : Là, il suffit de faire une verif que l'adresse est du genre : [alpha etendu]@[alpha etendu].[2/3 caracteres]

    je nomme alpha etendu une chaine contenant :
    * alphanumerique
    * ._ et peut etre quelques autres, a voir dans la RFC des adresses mails ;o) mais en tout cas, pas d'espace ni de deux-points (:)

  16. #16
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 156
    Points
    156
    Par défaut
    Trop interessant ce topic!
    Il savere que jai eu la même bizarerie un jour. J'avais un formulaire pour s'inscrire à la newsletter de mon site et pendant un mois j'avais des adresses email bizarre dans ma bdd avec des MIME-Version et companie. Je me demandais bien ce que le hacker tentait de faire, on a donc utiliser mon site pour spamer des innocents

    bref j'utilise l'expression regulière suivante pour verifier les emails
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ereg( "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-z]{2,4}$", $_POST["email"] )
    depuis RAS

  17. #17
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par zulkifli
    Trop interessant ce topic!
    Il savere que jai eu la même bizarerie un jour. J'avais un formulaire pour s'inscrire à la newsletter de mon site et pendant un mois j'avais des adresses email bizarre dans ma bdd avec des MIME-Version et companie. Je me demandais bien ce que le hacker tentait de faire, on a donc utiliser mon site pour spamer des innocents

    bref j'utilise l'expression regulière suivante pour verifier les emails
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ereg( "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-z]{2,4}$", $_POST["email"] )
    depuis RAS
    legere optimisation de ton code pour une gain d'environ 100fois, bon ok c'est un détail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match( "/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-z]{2,4}$/", $_POST["email"] )

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    En quoi le code de Chaced est-il supérieur à celui de Zulkifli, s'il vous plait ?

    Parce que je dois à l'instant me servir d'un bout de code de ce genre pour un formulaire de contact.
    C'est pas parce que j'ai tort que vous avez raison.

  19. #19
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    preg_match() est plus rapide que ereg().

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    je regardais un ou deux tuto, ils utilisent tous ereg.
    C'est pas parce que j'ai tort que vous avez raison.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [POO] C'est quoi une classe en claire...???
    Par Spack dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 26/01/2009, 15h53
  2. voir comment est alimentée une vue qui est dans dba_objects
    Par meufeu dans le forum Administration
    Réponses: 15
    Dernier message: 06/10/2004, 17h27
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43
  4. [Foreign Key] Un champ est-il une clé étrangère ?
    Par starch dans le forum Bases de données
    Réponses: 5
    Dernier message: 27/02/2004, 13h01
  5. Réponses: 14
    Dernier message: 17/03/2003, 18h31

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