Formail hacké

Nouveau WRInaute
Bonjour,

Quelqu'un cherche à tester les vulnérabilités de mon formulaire de contact, voilà ce que reçu dans ma boite mail :

Code:
Provenance : http://www.mondomaine.com
Adresse IP : 216.151.106.11,
Navigateur : 
Nom : lymlffl@mondomaine.com
Site web : 
Content-Type: multipart/mixed; boundary=\"===============0182600363==\"
MIME-Version: 1.0
Subject: 98b6b97e
To: lymlffl@mondomaine.com
bcc: mhkoch321@aol.com
From: lymlffl@mondomaine.com

This is a multi-part message in MIME format.

--===============0182600363==
Content-Type: text/plain; charset=\"us-ascii\"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

dhq
--===============0182600363==--
E-mail : lymlffl@mondomaine.com
Message : lymlffl@mondomaine.com

J'ai donc changé de formulaire dans le doute et il recommence :

Code:
mnhi@mondomaine.com
Content-Type: multipart/mixed; boundary="===============0498347997=="
MIME-Version: 1.0
Subject: 3f45422d
To: mnhi@mondomaine.com
bcc: bergkoch8@aol.com
From: mnhi@mondomaine.com

This is a multi-part message in MIME format.

--===============0498347997==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

jbrudi
--===============0498347997==--

J'ai reçu plusieurs mails et je pense qu'il à inséré des données pour tester chacun de mes champs de formuaire. Il est passé par un proxy High Anonymity.

Apparement c'est son métier de faire chier les autres:
https://www.google.fr/search?hl=fr&q=mhk ... ogle&meta=

https://www.google.fr/search?hl=fr&c2cof ... .com&meta=

J'utilise un script que j'ai trouvé sur webmaster-hub :
http://www.webmaster-hub.com/publicatio ... le110.html

Pensez-vous qu'il ait réussi à me hacker le script ?
Que puis-je faire contre lui ?
Connaissez-vous un script plus sécurisé ?

Merci d'avance

EDIT 12/09
Nouvelle adresse connu :
mhkoch321@aol.com
bergkoch8@aol.com
jrubin3456@aol.com
 
WRInaute occasionnel
Bonjour,

Quelqu'un ou quelque chose ... ça sent plus le robot qui se ballade sur le web et qui se fait plaisir à mon avis.
S'il continue, essaye de re-récupérer des informations sur lui (ip / host / user_agent) et puis arrange toi pour le bannir dans ton htaccess si possible.

Après à savoir s'il a réussi à te "hacker le script" euh ... je ne vois pas comment au vue du contenu des emails ...
Sinon le script que tu utilisais n'était pas trop mal.
Tu peux éventuellement convertir les données en leur entités html ( htmlentities() ) qui sera un poil plus complet que le htmlspecialchars() utilisé.
Mais bon, c'est du pinaillage ;)
 
WRInaute accro
est-ce que vous connaissez un bon script pour faire un "formail" (autrement dit un formulaire où les visiteurs du site peuvent recommander le site à leurs amis) et qui soit bon et protégé ?

parce que je cherche un peu partout sur le web mais je trouve pas
y'en a quelques uns sur le site de Nix mais comme d'habitude pour chaque script y'a 50 messages pour dire que le script et pourri, mal codé etc...

voila, merci d'avance

PS : pour le moment j'utilise le truc tout fait de "i-services" (-http://www.vrai-nom.com/reco.htm ) mais fin décembre ce service sera désactivé, donc il faudrait peut être que je me dépêche de le changer ;)
 
WRInaute impliqué
J'ai reçu les mêmes cette nuit :)

Et comme je reçois des notifications par SMS, j'ai été SMSpammé...
 
WRInaute impliqué
C'est une tentative d'injection d'header dans ton mail.

Il n'y a aucun problème car des paramètres headers sont déjà transmis à la fonction mail().

Sans doute un robot spameur.
 
Nouveau WRInaute
Apparemment il se servirait de cette faille pour envoyer du spam en masse, le formulaire permettrait de faire un relais pour couvrir ses agissements.

J'ai trouvé un article sur cette faille "Injection d headers dans la fonction mail() de PHP" :
http://www.phpsecure.info/v2/article/Ma ... Inject.php

Il y a une discussion à propos de ce spammeur et une proposition de script sécurisé contre ce type d'attaque :
http://www.anders.com/cms/75

"Keep sending those reports to AOL. The BCC'd list always seems to contain the spammers verification account. The initial test messages reveal who the spammer is. As the spam run ensues, check the BCC list for that "test account". All the other headers appeared to be forged.

They are using hacked computers to relay through exploitable web forms, which conceals the true orgin and makes it appear as if your site is responsible for the spam. If you let the spam escape your network, you may be held responsible for the spam. If the spam makes it through your organization, there is a good chance you'll be BlackListed by the ISP at the bcc'd list.

I'd suggest converting your web form program into a spam trap. Force send any mail submitted to it, to a spam-trap account. Collect as much data as you can, in particular, the domain being advertised in the spam and the spammers verification, email account, including the where the spammer connected from (the other hacked computer) and share it with AOL. They may not respond to your requests, but they do investigate these reports."

Si je comprends bien s'il parvient à exploiter la faille, le site est responsable du spam et il risque de se faire blacklisté par les ISP.

J'ai banni son ip avec htaccess et je vais informer le service abuse d'aol avec toutes les informations dont je dispose.
 
Nouveau WRInaute
yeca a dit:
J'ai reçu les mêmes cette nuit :)

Et comme je reçois des notifications par SMS, j'ai été SMSpammé...

Je t'invite à le signaler au service abuse d'aol : CGUFrance@aol.com si c'est le même email qu'il a laissé.
Il ne se gêne pas pour repasser sur les mêmes sites et tester plusieurs fois cette faille d'après ce que j'ai pu lire.
 
WRInaute discret
Moi aussi

Bonjour

J'ai également un formulaire de contact. La page PHP est distincte et je passe tout en POST. Pourtant les messages pollués se multiplient. 10-20 mails parfois avec tous les champs renseignés mais bidons.

Comment connaître l'IP du spammeur ?

Pas d'autres solutions ?

Merci
Sandrine
 
WRInaute discret
Solution ?

Bonjour,

J'ai vu dans un article qu'en fait le robot spammeur utilisé une faille de la fonction mail.
Donc j'ai suprimé, comme le conseil l'article tous les \r et \n.

Ca va suffir ?

Merci
Sandrine
 
WRInaute impliqué
Re: Solution ?

BigDebutant a dit:
Bonjour,

J'ai vu dans un article qu'en fait le robot spammeur utilisé une faille de la fonction mail.
Donc j'ai suprimé, comme le conseil l'article tous les \r et \n.

Ca va suffir ?

Merci
Sandrine

La meilleure solution est encore de ne pas intégrer de données provenant de l'utilisateur dans les headers.
 
WRInaute discret
C déjà le cas :wink:
Je définis l'expéditeur, le destinataire et le sujet du message. Pour le contenu je crée le message en fonction de ce que l'internaute a coché et inscrit dans le formulaire.

A priori cette nuit il n'est pas passé.
 
Nouveau WRInaute
Puisque apparement c'est un robot, une idée serait de faire un lien javascript vers ton formulaire de contact, il semblerait que les robots n'aiment pas trop le javascript.

Voici quelques portions de code qui pourront peut être t'aider à sécuriser ton formulaire.
Sur ce site en anglais qui parle uniquement de ce problème :
http://www.anders.com/cms/75

Code:
This is what you need to do in PHP form: 

Make sure you end your headers with \r\n\r\n. 

change 

$headers .= "From: " . $from . "\r\n"; 

to 

$headers .= "From: " . $from . "\r\n\r\n"; 

It is always best to filter mail form inputs 

// Strip \r and \n from the email address 

$_POST['email'] = preg_replace("\r", "", $_POST['email']); 
$_POST['email'] = preg_replace("\n", "", $_POST['email']); 

// Remove injected headers 

$find = array("/bcc\:/i","/Content\-Type\:/i","/cc\:/i","/to\:/i"); 

$_POST['email'] = preg_replace($find, "", $_POST['email']); 
$comments = preg_replace($find, "", comments); 

Ian
ou encore :
Code:
if (eregi("\r",$MailFrom) || eregi("\n",$MailFrom) || eregi("Content-Type:",$MailFrom)){ 
die("SPAM Injection Error :("); 
}

Sur l'article de phpsecure.info :
Code:
sécuriser les failles d'injection d'headers mail, il doit y avoir plusieurs manières differentes. Une idée serait d'ajouter, après la ligne :


$from=$_POST["expediteur"]; 

le code suivant :


if (eregi("\r",$from) || eregi("\n",$from)){
die("Why ?? :(");
}
 
WRInaute passionné
Je suis entrain de controler différentes choses... Je vous tiendrais au courant...

Je verifie si il y a pas de @ dans le nom \n et \r

Merci en tout cas
 
WRInaute discret
de même

Salut,

moi aussi, cela fonctionne.

En fait j'ai ajouté le test sur le HTTP_REFERER. Pour vérifier de quel site la page a été appelé.
Et j'ai laissé les tests sur les \r et \n.

Bon c'est pas top pour avoir des mails formatés. C'est ce qui m'embête le plus.

Sandrine
 
WRInaute passionné
Perso j'ai plusieurs champs dans mon formulaire et je fais le test seulement sur deux champs et pour l'instant ça suffit et ça me bouzille pas ma mise ne page
 
WRInaute passionné
<?php
if (eregi(chr(10),$mail) || eregi(chr(13),$mail) || eregi('Content-Type:',$mail)) {
exit('SPAM Injection Error :(');
}
?>

Merci de l'info Yeca mais en fait ça correspond à la meme chose puisque:

Chr(13) et Chr(10) Combinaison de retour chariot et de saut de ligne.

donc c'est equivalent \n et \r

a priori c'est la seule solution.... sans passer par le captcha code ou les questions betes
 
WRInaute accro
olivierb a dit:
il n'est pas prévu que ce service se termine fin décembre ...
Ben si, j'ai reçu le mail il y a quelques temps déjà (puisque je faisais partie des rares utilisateurs), et c'est donc pour ça que je suis passé à un formail php fait maison ;)
 
WRInaute discret
voila le message que tu a reçu :

====================================
ATTENTION ! Le Form2Mail a changé d'adresse, vous devez mettre à jour le code HTML sur vos pages avant le 31/12/2005. Pour vous inscrire à la nouvelle version, cliquez sur le lien suivant :

http://www.i-services.net/membres/formmail/
====================================

il faut apprendre à lire ;)
 
Discussions similaires
Haut