Spam via un formulaire contact PHP ???

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

smrhp
WRInaute discret
WRInaute discret
 
Messages: 191
Inscription: 3 Aoû 2005

Spam via un formulaire contact PHP ???

Message le Sam Fév 11, 2006 11:38

Salut,

Depuis quelques jours (et cette nuit en particulier !!!), je reçois une multitude de mails sur l'adresse contact de mon site (qui envoit un mail via mail() php uniquement à mon adresse !)... Cette nuit, au mini 150-200 mails dont les en-têtes ressemblent à ça :

Code: Tout sélectionner
Return-Path: <cgi-mailer-bounces-140586907@kundenserver.de>
Delivered-To: online.fr-*****
Received: (qmail 18398 invoked from network); 10 Feb 2006 22:47:27 -0000
Received: from moutng.kundenserver.de (212.227.126.173)
  by mrelay4-1.****.fr with SMTP; 10 Feb 2006 22:47:27 -0000
Received: from [212.227.126.200] (helo=mrvnet.kundenserver.de)
   by moutng.kundenserver.de with esmtp (Exim 3.35 #1)
   id 1F7h31-0007GN-00; Fri, 10 Feb 2006 23:47:27 +0100
Received: from [212.227.119.160] (helo=infong344 ident=8)
   by mrvnet.kundenserver.de with smtp (Exim 3.35 #1)
   id 1F7h31-00014d-00; Fri, 10 Feb 2006 23:47:27 +0100
Received: from [70.86.127.130](IP may be forged by CGI script)
   by infong344.kundenserver.de with HTTP; Fri, 10 Feb 2006 23:47:27 +0100
Date: Fri, 10 Feb 2006 23:47:27 +0100
Precedence: bulk
To: ****mon adresse ****
Subject: [HumourEnPJ][contact] as  Content-Type: multipart/mixed; boundary=a69afbbb79e278a6f4da7747d691472b MIME-Version: 1.0 Subject: festival take place. t was the hay harvest bcc: andrew@lifeserious.com  This is a multi-part message in MIME format.  --a69afbbb79e278a6f4da7747d691472b Content-Type: text/plain; charset=\"us-ascii\" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit  sepulchre of hrist, but through praying there too long the ship sailed without him, and he was forced to stay behind. hen came a man and took him upon his horse, and they would ride --a69afbbb79e278a6f4da7747d691472b--   . 
From: as
Content-Type: multipart/mixed; boundary=a69afbbb79e278a6f4da7747d691472b
MIME-Version: 1.0
Subject: festival take place. t was the hay harvest
Message-Id: <E1F7h31-00014d-00@mrvnet.kundenserver.de>
X-Provags-ID: kundenserver.de abuse@kundenserver.de sender-info:140586907@infong344


ça ressemble donc bigrement à du spam, mais la question que je me pose est : est-ce que ce spam n'est destiné qu'aux webmestre de tout un tas de sites via un robot qui chope les formulaires d'envoi de mail "contact" automatiquement où est-ce qu'il y a un risque pour qu'une faille de sécurité quelquonque puisse faire que mon site devienne relais de spam ????

Et dernière question, comme faire pour contourner tout ça et bloquer ce bordel !!!! ??? :(((

Merci beaucoup pour vos réponses.


Fab le Fou
WRInaute passionné
WRInaute passionné
 
Messages: 1511
Inscription: 2 Déc 2004

Message le Sam Fév 11, 2006 12:06

Même chose pour moi.

J'ai reçu une centaine de pourriels ce matin et ça ne semble pas s'arrêter... + plusieurs tentatives d'attaque via les formulaire de recherche du site concerné.

Je ne sais pas comment ils ont fait pour récupérer mon e-mail...

Même si thunderbird les envoit directement à la corbeille, c'est lourd ! :evil:


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18833
Inscription: 8 Aoû 2004

Message le Sam Fév 11, 2006 12:34

Est-ce que dans le script tu vérifies que cela vient bien de ta page et en POST et non en GET ?
En plus, il faut vérifier dans les différents champs qu'il n'y ait que des caractères autorisés et donc ne devant pas contenir des To: MIME etc...
Si le script laisse la possibilité d'insérer des champs To: à un quelconque endroit, il peut servir de relais spam.

yanhl
WRInaute impliqué
WRInaute impliqué
 
Messages: 793
Inscription: 4 Déc 2003

Message le Sam Fév 11, 2006 13:26

J'ai le même soucis mais je doute que ça provienne réellement du formulaire de contact mais plutôt de machines infectées. Je vais faire quelques tests à tout hasard, mais ça n'est pas un trop gros problème pour le moment (une vague de spam, puis rien, puis une nouvelle vague...).

Pour info, vous utilisez une librairie particulière pour envoyer vos emails ou c'est directement via la commande mail() de PHP ?

smrhp
WRInaute discret
WRInaute discret
 
Messages: 191
Inscription: 3 Aoû 2005

Message le Sam Fév 11, 2006 13:34

merci pour ces premières pistes... Pour ma part, dans mon cas, je suis quasi certain que ça vient de ma page formulaire de contact car j'ajoute 2 flags à l'objet (qu'on voit dans le header fournit)...

Pour le script en lui même, je vérifie qu'il y a bien un $_POST['submit'] , et je poste de façon très "brutale" et non paramétrable sur mon adresse perso ! ;)

Code: Tout sélectionner
$mailok=mail("**monmail**","[HumourEnPJ][contact] ".$_POST['courriel'],$_POST['msg'],"From: ".$_POST['courriel']."\r\n");


par contre je vois ici, que je ne met pas de "header" dans le mail (en laissant faire le serveur par défaut), serait-t'il possible que le $_POST['courriel'] puisse débordé dessus avec les bons caractères ??? J'ai un peu peur que oui ???

smrhp
WRInaute discret
WRInaute discret
 
Messages: 191
Inscription: 3 Aoû 2005

Message le Sam Fév 11, 2006 13:36

en attendant de trouver une solution fiable, je désactive le truc !! Je ne tiens pas à me pourrir mon compte auprès de 1&1 un peu plus si par hasard il a servit à envoyer tout un tas de spams :((((

yanhl
WRInaute impliqué
WRInaute impliqué
 
Messages: 793
Inscription: 4 Déc 2003

Message le Sam Fév 11, 2006 13:39

smrhp> c'est le meilleur test possible, préviens-nous si tu continues de recevoir des spams via un formulaire... qui n'existe plus ;-)

smrhp
WRInaute discret
WRInaute discret
 
Messages: 191
Inscription: 3 Aoû 2005

Message le Sam Fév 11, 2006 13:52

cha ch'est chûr ;o))) 8)

je vous tient au courant dans la journée (puisqu'à midi j'en avais encore reçu une série !!)

shrom
WRInaute impliqué
WRInaute impliqué
 
Messages: 865
Inscription: 5 Juil 2004

Message le Sam Fév 11, 2006 13:53

Leonick a écrit:Est-ce que dans le script tu vérifies que cela vient bien de ta page et en POST et non en GET ?


Peu importe que ce soit en POST ou en GET, les robots spammeurs sont capables de faire les deux.

Pour se protéger de l'injection d'en-tête dans les mails, il faut virer des entrées utilisateur tout ce qui contient: "\r","\n","%0ad", "%0AD","%0d","%0D","Content-Type:","bcc:","to:","cc:"


itsme
WRInaute impliqué
WRInaute impliqué
 
Messages: 744
Inscription: 13 Oct 2004

Message le Sam Fév 11, 2006 13:58

smrhp a écrit:...serait-t'il possible que le $_POST['courriel'] puisse débordé dessus avec les bons caractères ??? J'ai un peu peur que oui ???

Et oui, les formulaires de contact doivent filtrer les donnees pour eviter les detournement de la zone header.

Un grand classique :)

En gros, tu peux deja appliquer cela

Code: Tout sélectionner
if (eregi("\r",$from) || eregi("\n",$from)){
die("Why ?? :(");
}


Premier lien trouve sur google en 2 secondes sur : http://www.phpsecure.info/v2/article/Ma ... Inject.php


Leonick
WRInaute accro
WRInaute accro
 
Messages: 18833
Inscription: 8 Aoû 2004

Message le Sam Fév 11, 2006 14:03

Et même vérifier le contenu de $_POST['msg'], car on peux aussi forcer des entrées de header dedans.

smrhp
WRInaute discret
WRInaute discret
 
Messages: 191
Inscription: 3 Aoû 2005

Message le Sam Fév 11, 2006 14:35

merci à tous...

réponse pour l'origine : y'a pas photo ça venait bien de ma page php contact (j'ai remplacé mail(php) par un mail(tout en dur) et je reçois toujours des mails mais sans les hieroglyphes foireux du robots qui cherchait à utiliser ma page !)


Concernant la sécurité, ben en fait, jamais je ne me serais douté que la fonction mail() pouvait être "piratable" ainsi.... Je pensais que les trous pouvaient venir "pleinement" de la part du webmestre, genre laisser définir le to dans une variable et ne pas savoir à qui on envoit... Mais que le paramètre objet, message puisse être exploité en plaçant des caractères de contrôle dedans :(
Bon, ben maintenant me voilà au courant... Je vais de ce pas filtrer tout ça... Y compris sur d'autres sites...

Encore merci pour ces réponses rapides...

smrhp
WRInaute discret
WRInaute discret
 
Messages: 191
Inscription: 3 Aoû 2005

Message le Sam Fév 11, 2006 15:13

PARFAIT ça semble fonctionner ! Je m'étais mis un mail() d'alerte quand la règle de filtre est utilisée et en effet je reçois des petits mail (voulus cette fois-ci) donc ça filtre bien et on tentait bien de m'utiliser en relais...

Bon, ça aura fonctionné un jour ou deux... :( mais c'est maintenant corrigé

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Sam Fév 11, 2006 15:15

quel règle as tu appliquer finallement ?

smrhp
WRInaute discret
WRInaute discret
 
Messages: 191
Inscription: 3 Aoû 2005

Message le Sam Fév 11, 2006 15:34

dans un premier temps j'ai appliqué la plus simple ;) mais sur toutes les varialbes passées à mon mail (en les cumulant dans une chaine pour le test) :

Code: Tout sélectionner
if (eregi("\r",$test) || eregi("\n",$test)){
die("Why ?? :(");
}


puisque je ne laisse pas la possibilité de "personnalisé" le header, le fait de bloquer simplement le "débordement" de header, devrait être suffisant pour mon form contact ;)

Spam via un formulaire contact PHP ???

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités