Audit de sécurité WordPress, du thème aux extensions.
Un audit de sécurité WordPress, ou pentest WordPress, teste votre site tel qu'il existe réellement : le cœur, mais surtout les extensions, le thème sur mesure, les rôles et tout ce que les années ont empilé dessus. Nos outils maison passent chaque extension en revue, et notre expertise manuelle cherche ce qu'un plugin de sécurité ne voit pas.
En bref
- Le périmètreLe cœur, les extensions, le thème sur mesure, et le tunnel WooCommerce s'il y en a un.
- Ce que nous cherchonsDes capacités mal vérifiées, des actions AJAX laissées ouvertes, une API REST bavarde, des uploads et des fichiers oubliés.
- Ce qu'il nous fautUn compte par rôle réellement utilisé sur le site.
- Ce que vous recevezUn rapport avec la preuve et le correctif de chaque faille, une restitution avec votre équipe et un retest sous 60 jours.
Vulnérabilités trouvées dans ces secteurs
- Services publics (.gouv.fr)
- Groupes du CAC 40
- Leaders du luxe
- Médias nationaux
- Mairies et collectivités
Le problème n'est presque jamais WordPress. C'est ce qu'on a ajouté dessus.
Une extension abandonnée par son auteur, un thème sur mesure vulnérable, une action AJAX qui oublie de vérifier qui l'appelle. Un scanner n'en repère qu'une partie.
Le cœur de WordPress est relu par beaucoup de monde et corrigé vite. Ce n'est presque jamais là que nous trouvons des failles, ni là que les attaquants en trouvent.
Le risque vient de ce qu'on ajoute : une extension gratuite que son auteur a cessé de maintenir, un formulaire de contact qui construit sa requête à la main, un ancien plugin désactivé mais toujours présent sur le serveur, et toujours joignable par son adresse.
Un scan de vulnérabilités ne connaît que les failles déjà publiées. Celles-là se trouvent en lisant et en manipulant le site, ce que font nos outils maison et notre expertise manuelle.
Avant le correctif
Un simple abonné déclenche l'export de tous les comptes : l'extension ne vérifie pas la capacité de l'appelant.
Après le correctif
L'action vérifie la capacité à chaque appel : un abonné reçoit un refus.
La même action, un simple abonné. Retournez la carte pour voir la correction.
Quand auditer votre WordPress.
Un site WordPress ne cesse de changer : chaque extension ajoutée, chaque mise à jour, chaque refonte déplace sa surface.
Avant la mise en ligne
Avant qu'un site neuf, ou refait par une agence, ne soit indexé et balayé par les robots.
Après l'ajout d'une extension
Un formulaire, un espace membre ou un module de paiement ajoute une surface qui n'a pas encore été testée.
Avant d'ouvrir une boutique
WooCommerce apporte un tunnel de commande, des remises et des données clients : une vraie logique métier à tester.
Une fois par an
Vos extensions changent de version, parfois de propriétaire, et vous ne savez pas toujours ce qui arrive avec.
Après un piratage ou une alerte
Nettoyer ne suffit pas : il faut savoir par quelle extension c'est entré, et fermer la porte.
Ce que nous testons.
Six familles de failles WordPress, cherchées à chaque audit, et l'endroit de votre site où chacune se cache.
Extensions
Versions vulnérables connues, et aussi les failles propres à votre configuration et à vos combinaisons d'extensions.
Thème sur mesure
Requêtes construites à la main, sorties non échappées, fichiers PHP appelables directement.
Rôles, capacités et AJAX
Ce qu'un abonné, un contributeur ou un auteur atteint réellement, et les actions AJAX qui oublient de vérifier sa capacité ou son Le jeton à usage unique que WordPress joint à une action pour prouver qu'elle vient bien de votre site..
API REST et XML-RPC
Routes exposées par défaut ou par les extensions, énumération des utilisateurs, écriture non contrôlée.
Fichiers et médias
Types de fichiers acceptés à l'upload, exécution possible, sauvegardes, journaux de débogage et dépôts Git laissés en ligne.
WooCommerce
Tunnel de commande, règles de remise, L'appel que votre prestataire de paiement envoie à votre site pour confirmer une commande : s'il n'est pas vérifié, il peut être imité. de paiement et accès aux données des clients, si la boutique est en place.
Comment se déroule un audit WordPress.
Six étapes, du cadrage au retest, pensées pour ce qu'on a ajouté au cœur.
Lire la méthodologie complète- 01
Cadrage
On fixe avec vous le périmètre : le site, les rôles utilisés, ce qui a été développé pour vous et ce qui est exclu. NDA dès que l'on entre dans le détail technique, convention d'autorisation de test d'intrusion une fois le devis signé, avant tout accès.
- 02
Inventaire
Recensement des extensions et de leurs versions, du thème, des points d'entrée exposés, et de tout ce qui traîne sur le serveur sans être référencé nulle part. Cette étape seule remonte régulièrement des surprises : une ancienne préproduction encore accessible, une sauvegarde téléchargeable, une extension désactivée mais toujours atteignable.
- 03
Test des rôles
Nous nous connectons avec chaque rôle et tentons d'atteindre ce qui ne lui est pas destiné : actions d'administration, contenus d'autres auteurs, réglages du site, actions AJAX réservées. Les escalades de privilèges dans WordPress viennent le plus souvent d'une capacité mal vérifiée dans une extension.
- 04
Analyse du sur-mesure
Le code écrit pour vous reçoit l'attention la plus soutenue, parce qu'aucune base de failles publiques ne le couvre : formulaires, requêtes, affichage des données saisies par les utilisateurs, traitement des fichiers.
- 05
Rapport et restitution
Un rapport classé par gravité réelle, avec une preuve de concept reproductible et une correction concrète pour chaque faille, formulée pour la personne qui maintient votre site. Puis une restitution avec votre équipe. Voir un exemple de rapport.
- 06
Retest & clôture
Une fois les correctifs en place, nous rejouons chaque faille. Une extension mise à jour ne corrige pas toujours le problème : le retest, inclus, le vérifie.
Boîte noire, grise ou blanche.
Ce que vous nous donnez au départ décide de ce que l'audit peut atteindre. Sur WordPress, notre conseil : un compte par rôle réellement utilisé.
Boîte noire : l'adresse, rien d'autre
- Vous fournissez
- L'adresse du site. Aucun compte, aucun accès aux fichiers.
- Le test atteint
- Ce qu'un visiteur atteint : extensions et versions exposées, API REST, xmlrpc.php, fichiers oubliés. La connexion arrête le reste, sauf faille pour la franchir.
- À choisir quand
- Vous voulez savoir ce qu'un robot ou un inconnu trouve sur votre site depuis Internet.
Boîte grise : un compte par rôle Notre conseil
- Vous fournissez
- Un compte pour chaque rôle réellement utilisé : abonné, client, auteur, éditeur, et un administrateur si les escalades de privilèges sont dans le périmètre.
- Le test atteint
- Tout ce que chaque rôle atteint, et surtout ce qu'il ne devrait pas : actions AJAX, réglages, contenus des autres.
- À choisir quand
- Dans presque tous les cas : c'est ainsi que se trouvent les escalades de privilèges.
Boîte blanche : les comptes et le code
- Vous fournissez
- Les comptes, plus un accès en lecture au thème et aux extensions développés pour vous.
- Le test atteint
- Aussi la logique écrite dans votre code sur mesure, qu'aucun scanner ne couvre.
- À choisir quand
- Quand une bonne partie des fonctionnalités a été développée sur mesure.
Ce que ça donne en pratique.
Des failles réelles trouvées sur des sites WordPress, toutes corrigées depuis.
rapports envoyés avec une vulnérabilité critique
Sur plus de 485 rapports envoyés, en test d'intrusion et en bug bounty.
rapports envoyés au total
En test d'intrusion et en bug bounty.
Actifs en bug bounty
Chercheurs sur YesWeHack et Intigriti, deux plateformes européennes où chaque faille est vérifiée avant d'être acceptée.
- CritiqueCorrigée
Escalade de privilèges
Action AJAX d'une extension enregistrée sans vérification de capacité, atteignable par un simple abonné.
- CritiqueCorrigée
Injection SQL
Filtre de recherche d'un thème sur mesure construisant sa requête par concaténation.
- CritiqueCorrigée
Exposition de fichiers
Sauvegarde complète de la base laissée téléchargeable à une adresse devinable.
- ÉlevéeCorrigée
XSS stockée
Champ d'un formulaire d'extension affiché sans échappement dans l'interface d'administration.
Nous ne divulguons jamais le nom d'un client, ni aucun détail qui permettrait de le reconnaître.
Le rapport que vous recevez.
Chaque faille prouvée, expliquée et rattachée à l'extension ou au fichier en cause : lisible par votre direction, applicable par votre équipe ou votre prestataire.
Une action réservée aux administrateurs, déclenchable par un simple abonné, c'est-à-dire par n'importe qui pouvant créer un compte sur le site.
GravitéCritique, depuis un compte abonné
Requêtes, captures et étapes de reproduction : caviardées dans cet exemple. Votre rapport contient chacune d'elles, prête à rejouer.
Vérifier la capacité de l'appelant et le nonce dans chaque action AJAX enregistrée, et refuser par défaut.
PrioritéImmédiate, retest inclus
Le filtre de recherche du thème construisait sa requête par concaténation : la base de données du site, lisible depuis un simple champ de recherche.
GravitéCritique, un champ de recherche
Requêtes, captures et étapes de reproduction : caviardées dans cet exemple. Votre rapport contient chacune d'elles, prête à rejouer.
Passer toutes les requêtes du thème par les requêtes préparées de WordPress, et ne jamais concaténer une saisie.
PrioritéImmédiate, retest inclus
Une sauvegarde complète de la base, téléchargeable à une adresse devinable : comptes, contenus et données clients en un seul fichier.
GravitéCritique, une adresse devinée
Requêtes, captures et étapes de reproduction : caviardées dans cet exemple. Votre rapport contient chacune d'elles, prête à rejouer.
Retirer les sauvegardes du répertoire public, les stocker hors du site et bloquer le téléchargement des archives.
PrioritéImmédiate, retest inclus
Rapport priorisé
Chaque faille du site classée par gravité réelle : ce qu'un attaquant obtiendrait vraiment, pas un score théorique.
Preuve de concept reproductible
Les requêtes exactes, que votre équipe ou votre prestataire rejoue sur une copie du site pour voir la faille de ses yeux.
Impact métier
Quels comptes, quelles données, quelles commandes sont exposés, dit en clair pour votre direction.
Correctifs précis
La mise à jour, le réglage ou la correction de code attendus, formulés pour la personne qui maintient votre site.
Retest inclus
Une fois les correctifs en place, chaque faille est rejouée : elle n'est close que lorsque la preuve ne passe plus.
Restitution & échange
Un échange avec vous et votre équipe technique pour parcourir les failles et prioriser les corrections.
Combien ça coûte.
Sur devis, et voici pourquoi : deux sites WordPress d'apparence identique peuvent cacher des volumes de code très différents. Pour vous situer, voici nos tarifs selon le type de mission.
À partir de2 700 € TTC
Site vitrine ou boutique
Quatre à six jours. Un site WordPress, ses extensions, ses formulaires et, s'il y en a une, sa boutique WooCommerce.
À partir de7 500 € TTC
Application métier ou SaaS
Dix à quinze jours ou plus. Un WordPress devenu plateforme : espaces membres, rôles multiples, développements sur mesure.
À partir de3 200 € TTC
API ciblée
Quatre à huit jours. L'API REST d'un WordPress qui sert une application ou un front découplé.
Ce qui fait varier le prix
Le volume de code sur mesure, d'abord : un site monté avec des extensions du dépôt officiel et un thème du commerce demande beaucoup moins de temps qu'un site dont la moitié des fonctionnalités a été développée sur mesure.
Ensuite le nombre d'extensions, et surtout leur nature : celles qui ajoutent des formulaires, des espaces membres, des droits ou des paiements comptent bien plus que celles qui gèrent un cache. Enfin la présence de WooCommerce ou d'un espace client, qui ajoute une couche entière de logique métier.
Le premier échange sert à savoir dans quel cas vous êtes, sans engagement. Si votre site demande moins que prévu, nous vous le dirons.
25vérifications de capacité
Doit être accordéDoit être refusé
Chaque case est une vérification. Ce rôle a-t-il cette capacité, et chaque extension la vérifie-t-elle vraiment ?
WordPress est-il un CMS peu sûr ?
Le cœur de WordPress est audité en permanence et corrigé vite. Le risque vient de l'écosystème : des extensions écrites par des auteurs très inégaux, des thèmes sur mesure vulnérables, et des sites qui accumulent des années de dépendances. En pratique, presque toutes les compromissions que nous voyons passent par un élément ajouté, pas par le cœur.
Un plugin de sécurité ne suffit-il pas ?
Un plugin de sécurité bloque les attaques connues et génériques, ce qui est utile. Il ne détecte pas qu'une extension expose une action AJAX sans vérification de capacité, ni qu'un formulaire développé sur mesure permet une injection. Ces failles sont souvent propres à votre installation, donc absentes des bases de signatures.
L'audit se fait-il sur le site en production ?
Oui dans la plupart des cas, sans interruption de service. Les tests destructifs sont exclus par défaut. Si vous disposez d'une copie de préproduction fidèle, on peut y mener les tests les plus intrusifs, puis confirmer les points sensibles en production.
Faut-il vous donner un accès administrateur ?
Un compte de chaque rôle utilisé sur le site est recommandé, y compris un compte administrateur si le périmètre inclut les escalades de privilèges. C'est ce qui permet de vérifier qu'un abonné ou un contributeur ne peut pas atteindre des capacités qui ne lui reviennent pas.
Testez-vous aussi WooCommerce ?
Oui. Une boutique WooCommerce ajoute un tunnel de commande, des règles de remise, des webhooks de paiement et des données clients, donc une surface de logique métier importante. C'est souvent la partie la plus intéressante à tester sur un site WordPress.
Les autres prestations.
Votre WordPress n'est qu'une partie de ce que vous exposez ? Une autre mission peut le compléter.
Audit de sécurité de site web
Site vitrine, boutique ou CMS : la sécurité de ce que vos visiteurs voient, hébergement compris.
Voir la prestationTest d'intrusion web
Pour une application qui n'est pas sous WordPress, ou pour aller plus loin que le CMS : parcours, rôles et logique métier.
Voir la prestationAudit de sécurité d'API
Si votre WordPress sert de back-office à une application ou à un front découplé, l'API mérite son propre audit.
Voir la prestationAuthentification et permissions
Connexion, sessions, SSO et rôles : qui peut entrer, et jusqu'où.
Voir la prestationFaites auditer votre WordPress.
Votre site WordPress est une cible.
Dites-nous combien d'extensions compte votre site, s'il a un thème sur mesure, et s'il y a un espace client ou une boutique. Nous répondons avec un cadrage et un devis. Premier échange sans engagement.