THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Attaque sur mon thélia :-((

(17-08-2009 21:51:54)


Bonjour,

Il y a 18 mois, j'ai créé un site avec Thélia 1.3.3. (www.daniel-mercier.com). Tout fonctionnait normalement.

Le 8 aout un pirate a attaqué le site et a réussi à lancer des commandes en chaine.  Heureusement OVH a repéré les retours d'emails et m'a avertie.  J'ai réussi à stopper cela en mettant Thélia à jour, maintenant en 1.3.9.  Cependant ce petit malin créé encore des commandes et le plus embêtant c'est qu'il arrive à faire passer le statut à "payé" et même à écrire sur le fichier de logs (logfile.txt) toutes les références de la transaction bidon (plugin Atos pour e-transactions du CA).

J'ai consulté les stats à la recherche d'un appel à un script externe mais je ne vois rien.  Comment fait-il donc ?  Ai-je fait une grave erreur ?  Merci de votre aide.

Offline


Re-bonjour à tous, quelques précisions pour affiner le diagnostic...

Exemple de fin de log qui correspond à une commande validée et passée en mode "payé" :

41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:43:58 +0200] "GET /dtr/image.php?t=h1_Mode+de+paiement HTTP/1.1" 200 1313 "http://www.daniel-mercier.com/commande. … sport&id=3" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:43:58 +0200] "GET /images/fond-pied.jpg HTTP/1.1" 200 6918 "http://www.daniel-mercier.com/commande. … sport&id=3" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:43:59 +0200] "GET /commande.php?action=paiement&type_paiement=8 HTTP/1.1" 302 3906 "http://www.daniel-mercier.com/commande. … sport&id=3" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:43:59 +0200] "GET /dtr/image.php?t=h1_votre+commande HTTP/1.1" 200 1077 "http://www.daniel-mercier.com/commande. … sport&id=3" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:44:01 +0200] "GET /client/plugins/atos/paiement.php HTTP/1.1" 200 955 "http://www.daniel-mercier.com/commande. … sport&id=3" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:44:02 +0200] "GET /client/plugins/atos/logo/CLEF.gif HTTP/1.1" 200 1254 "http://www.daniel-mercier.com/client/pl … iement.php" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:44:03 +0200] "GET /client/plugins/atos/logo/CB.gif HTTP/1.1" 200 1867 "http://www.daniel-mercier.com/client/pl … iement.php" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:44:03 +0200] "GET /client/plugins/atos/logo/INTERVAL.gif HTTP/1.1" 200 89 "http://www.daniel-mercier.com/client/pl … iement.php" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:44:04 +0200] "GET /client/plugins/atos/logo/VISA.gif HTTP/1.1" 200 1389 "http://www.daniel-mercier.com/client/pl … iement.php" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
41.189.53.75 www.daniel-mercier.com - [12/Aug/2009:22:44:04 +0200] "GET /client/plugins/atos/logo/MASTERCARD.gif HTTP/1.1" 200 1960 "http://www.daniel-mercier.com/client/pl … iement.php" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
193.56.46.18 www.daniel-mercier.com - [12/Aug/2009:22:42:05 +0200] "POST /client/plugins/atos/call_autoresponse.php HTTP/1.0" 200 - "-" "-"
193.56.46.18 www.daniel-mercier.com - [12/Aug/2009:22:44:31 +0200] "POST /client/plugins/atos/call_autoresponse.php HTTP/1.0" 200 - "-" "-"

Sachant que j'ai rajouté ceci dans mon call_autoresponse, est-ce que ça peut-être la source du pb ?

<code>
// traitement du statut de la commande dans thélia + envoi mail
   
    $commande->charger_trans($transaction_id);
    if($response_code == "00"){
     $commande->statut = 2;
     $commande->genfact();
    
    
     //En-têtes
    $headers = "From: commercial@daniel-mercier.com\r\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/plain; charset= iso-8859-1\n";
           
    //Sujet du message
    $sujet = "Reglement commande " . $commande->ref;
           
    //Corps du message               
    $message = "Le no de carte bancaire pour la commande " . $commande->ref . " a été validé sur e-transactions.\n";

    //Envoi du mail
    mail('commercial@daniel-mercier.com, compta@daniel-mercier.com', $sujet, $message, $headers);
   
    } // fin du if response_code
   
    else if ($response_code == "17")
   
    {
     //En-têtes
    $headers = "From: commercial@daniel-mercier.com\r\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/plain; charset= iso-8859-1\n";
           
    //Sujet du message
    $sujet = "Reglement commande " . $commande->ref;
           
    //Corps du message               
    $message = "ATTENTION : Reglement par Carte bancaire annulé par le client pour la commande " . $commande->ref . ".\n";

    //Envoi du mail
    mail('commercial@daniel-mercier.com, compta@daniel-mercier.com', $sujet, $message, $headers);
    }
   
    else
   
    {
     //En-têtes
    $headers = "From: commercial@daniel-mercier.com\r\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/plain; charset= iso-8859-1\n";
           
    //Sujet du message
    $sujet = "Reglement commande " . $commande->ref;
           
    //Corps du message               
    $message = "ATTENTION : Reglement par Carte bancaire non validée par e-transactions pour la commande " . $commande->ref . ".\n";

    //Envoi du mail
    mail('commercial@daniel-mercier.com, compta@daniel-mercier.com', $sujet, $message, $headers);
    }
   
    $commande->maj();
   
    modules_fonction("confirmation", $commande);

</code>

Je précise en outre que le fameux pirate, pour sa toute première commande, a réussi à faire un vrai paiement (qualifié "envoyé en banque" sur e-transactions).  Le CA a ensuite appelé mon client pour leur signaler que c'était un faux paiement.

Merci

Offline


c pas un envoi de mail qui créer une faille dans le script.
le fait qu'il créer des commandes, ca c'est pas une faille en soi, si tu veux empecher un script de la faire il te suffit de mettre un code à écrire pour la validation.
pour ce qui est du statut passé à payé, ca m'étonne sacrément, normalement c un variable de la bdd modifiable uniquement à l'aide du backoffice, si je ne me trompe pas.

Es-tu sur qu'il n'a pas les accès à ton bo ? as tu chnagé ton mot de passe admin depuis ses attaques ?

Offline


Bonjour,

En fait c'est beaucoup plus simple que ça via les urls et les paramètres post et get... sad

Je viens de voir qu'il y avait une grosse faille de sécurité au niveau échange de données avec le plugin paybox (c'est celui que j'utilise, je n'ai pas testé les autres...).

Je n'expliquerai pas tout ici, pour éviter l'utilisation par des petits malins big_smile en attendant un possible bugfix ? hmm

Cependant, je pense que c'est plus un problème au niveau module de paiement de la banque que du plugin paybox en lui même ....

Voila pourquoi il est nécessaire de bien vérifier le paiement au niveau de la banque.

Messieurs les admin, je peux vous faire parvenir mon étude par MP, si vous voulez wink


YoCarBo

Offline


Tu n'avais pas tout simplement un souci de sécurité de ton fichier confirmation.php de ton plugin paybox ?

Pour Frannie, ça viendrait du plugin atos qui ne serait pas sécurisé.

Last edited by Elyos (02-10-2009 11:49:39)


Aide les autres, ils t'aideront en retour.

Offline


Objection Votre Honneur,

yocarbo wrote:

en attendant un possible bugfix

yocarbo wrote:

Cependant, je pense que c'est plus un problème au niveau module de paiement de la banque que du plugin paybox en lui même ....

On doit pouvoir régler ça par le paramétrage de config.php du plugin paybox et éviter de mettre $mode = '1';

Il faut qu'il soit à 4 ... donc un bugfix s'impose wink

Je vous tiens au courant de mon avancé.

YoCarBo

Last edited by yocarbo (02-10-2009 11:59:53)

Offline


Elyos wrote:

Tu n'avais pas tout simplement un souci de sécurité de ton fichier confirmation.php de ton plugin paybox ?

Pour Frannie, ça viendrait du plugin atos qui ne serait pas sécurisé.

J'ai renommé confirmation.php (comme spécifié dans le README) mais cela n'est pas le trou de sécurité wink
faudrait regarder si ma trouvaille n'est pas transposable aux autres plugins.

YoCarBo

Last edited by yocarbo (02-10-2009 12:01:23)

  • manu
  • faï tot petar miladiu

Offline


Mais il fait quoi en fait? Il utilise des cartes volées non?

pour yocarbo ou tu peux nous joindre par mp ou mail.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

  • yoan
  • Cofondateur Thelia

Offline


Effectivement la question de Manu est pertinente. Tu peux nous en dire plus ?


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline


manu wrote:

pour yocarbo ou tu peux nous joindre par mp ou mail.

c'est envoyé sur ton MP wink

YoCarBo

Offline


yocarbo wrote:

Voila pourquoi il est nécessaire de bien vérifier le paiement au niveau de la banque.
YoCarBo

Bonjour,

Le pirate en question a cessé son petit jeu et j'ai effectivement fortement conseillé à mon client de vérifier tout paiement sur l'interface e-transactions du CA avant l'envoi de colis.

Tout ce que je sais c'est que la première transaction, validée par e-transactions dans un premier temps était en réalité une fraude mais je ne sais pas si c'était une carte volée.  Les quelques autres commandes ont ensuite été validées et le statut passé à "payé" + écriture dans logfile.txt par le 1er (?) niveau de vérification des no de cartes, celui qui génère des "responde code" mais pas par e-transactions.

Merci de vos retours en tout cas

  • manu
  • faï tot petar miladiu

Offline


pour le problème de yocarbo, il avait modifié le comportement du plugin utilisant une autre manière de validation donc pas de souci avec le plugin ogone.

pour le problème de frannie tout laisse penser à l'utilisation de carte volées, falcifiées etc, à part adhérer à FIA NET on pourra pas faire grand chose pour ces choses la.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


un détail mais change le nom de ton dossier "admin" par autre chose.
La page /admin est accessible.

Last edited by pinpin (09-10-2009 08:59:14)