Wordpress
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%283%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=90010f00&sv=1)
Utilisez Trickest pour construire et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde. Accédez dès aujourd'hui :
Informations de base
Les fichiers téléchargés vont à : http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Les fichiers des thèmes peuvent être trouvés dans /wp-content/themes/, donc si vous modifiez du code php du thème pour obtenir une RCE, vous utiliserez probablement ce chemin. Par exemple : En utilisant le thème twentytwelve, vous pouvez accéder au fichier 404.php dans : /wp-content/themes/twentytwelve/404.php
Une autre URL utile pourrait être : /wp-content/themes/default/404.php
Dans wp-config.php, vous pouvez trouver le mot de passe root de la base de données.
Chemins de connexion par défaut à vérifier : /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
Fichiers principaux de WordPress
index.php
license.txt
contient des informations utiles telles que la version de WordPress installée.wp-activate.php
est utilisé pour le processus d'activation par e-mail lors de la configuration d'un nouveau site WordPress.Dossiers de connexion (peuvent être renommés pour les masquer) :
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
est un fichier qui représente une fonctionnalité de WordPress qui permet de transmettre des données avec HTTP agissant comme mécanisme de transport et XML comme mécanisme de codage. Ce type de communication a été remplacé par l'API REST de WordPress.Le dossier
wp-content
est le répertoire principal où les plugins et les thèmes sont stockés.wp-content/uploads/
est le répertoire où sont stockés les fichiers téléchargés sur la plateforme.wp-includes/
est le répertoire où sont stockés les fichiers principaux, tels que les certificats, les polices, les fichiers JavaScript et les widgets.wp-sitemap.xml
Dans les versions de Wordpress 5.5 et supérieures, Wordpress génère un fichier XML de plan de site avec tous les articles publics et les types de publications et taxonomies interrogeables publiquement.
Post-exploitation
Le fichier
wp-config.php
contient les informations requises par WordPress pour se connecter à la base de données telles que le nom de la base de données, l'hôte de la base de données, le nom d'utilisateur et le mot de passe, les clés d'authentification et les sels, et le préfixe de table de base de données. Ce fichier de configuration peut également être utilisé pour activer le mode DEBUG, ce qui peut être utile pour le dépannage.
Permissions des utilisateurs
Administrateur
Éditeur : Publie et gère ses propres publications et celles des autres.
Auteur : Publie et gère ses propres publications.
Contributeur : Rédige et gère ses publications mais ne peut pas les publier.
Abonné : Parcourt les publications et modifie son profil.
Énumération passive
Obtenir la version de WordPress
Vérifiez si vous pouvez trouver les fichiers /license.txt
ou /readme.html
À l'intérieur du code source de la page (exemple de https://wordpress.org/support/article/pages/) :
grep
meta name
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-50bf07ade58e70bab23a0cca05204a1bd07b8b2d%252Fimage%2520%28343%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=95532289&sv=1)
Fichiers de liens CSS
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-82a942408ce69ff92471e41f0d334db258a87bb2%252Fimage%2520%28344%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=541d1616&sv=1)
Fichiers JavaScript
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-cd734fb04458eb19f18f9a1df50c912d69743da1%252Fimage%2520%28346%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=5f3d01d9&sv=1)
Obtenir les plugins
Obtenir des thèmes
Extraire les versions en général
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-b98c9fbbc98929f4f21cab6c8d6d02d3844d23bd%252Fimage%2520%283%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=6a7dba5f&sv=1)
Utilisez Trickest pour construire facilement et automatiser des workflows alimentés par les outils communautaires les plus avancés au monde. Accédez dès aujourd'hui à :
Énumération active
Extensions et thèmes
Vous ne pourrez probablement pas trouver toutes les extensions et thèmes possibles. Pour découvrir tous les éléments, vous devrez forcer activement une liste d'extensions et de thèmes (heureusement, il existe des outils automatisés contenant ces listes).
Utilisateurs
ID Brute
Vous obtenez des utilisateurs valides d'un site WordPress en forçant de manière brutale les identifiants d'utilisateurs :
Si les réponses sont 200 ou 30X, cela signifie que l'identifiant est valide. Si la réponse est 400, alors l'identifiant est invalide.
wp-json
Vous pouvez également essayer d'obtenir des informations sur les utilisateurs en interrogeant :
Un autre point de terminaison /wp-json/
qui peut révéler des informations sur les utilisateurs est :
Notez que ce point de terminaison expose uniquement les utilisateurs qui ont publié un article. Seules les informations sur les utilisateurs ayant activé cette fonctionnalité seront fournies.
Notez également que /wp-json/wp/v2/pages pourrait divulguer des adresses IP.
Énumération des noms d'utilisateur de connexion
Lors de la connexion à /wp-login.php
, le message est différent si le nom d'utilisateur indiqué existe ou non.
XML-RPC
Si xml-rpc.php
est actif, vous pouvez effectuer une attaque par force brute sur les informations d'identification ou l'utiliser pour lancer des attaques par déni de service sur d'autres ressources. (Vous pouvez automatiser ce processus en utilisant ceci par exemple).
Pour vérifier s'il est actif, essayez d'accéder à /xmlrpc.php et envoyez cette requête :
Vérifier
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fh3llwings.files.wordpress.com%2F2019%2F01%2Flist-of-functions.png%3Fw%3D656&width=768&dpr=4&quality=100&sign=788583b9&sv=1)
Bruteforce d'identifiants
wp.getUserBlogs
, wp.getCategories
ou metaWeblog.getUsersBlogs
sont quelques-unes des méthodes qui peuvent être utilisées pour effectuer un bruteforce d'identifiants. Si vous parvenez à en trouver une, vous pouvez envoyer quelque chose comme :
Le message "Nom d'utilisateur ou mot de passe incorrect" dans une réponse de code 200 doit apparaître si les identifiants ne sont pas valides.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-5c4892619c2d83f4a7efcf49b5353ac0916e158e%252Fimage%2520%28107%29%2520%282%29%2520%282%29%2520%282%29%2520%282%29%2520%282%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%284%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=131c249&sv=1)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-87fc7beeae571cb15445d9dcb13b6841933c0ce7%252Fimage%2520%28102%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=ed6ab8b5&sv=1)
En utilisant les identifiants corrects, vous pouvez télécharger un fichier. Dans la réponse, le chemin apparaîtra (https://gist.github.com/georgestephanis/5681982)
Il y a aussi un moyen plus rapide de forcer les informations d'identification en utilisant system.multicall
car vous pouvez essayer plusieurs informations d'identification sur la même requête :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-e0eebcc35136b55d285190584c890de34cb4ce31%252Fimage%2520%28188%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=58730ed7&sv=1)
Contourner l'authentification à deux facteurs (2FA)
Cette méthode est destinée aux programmes et non aux humains, et est ancienne, donc elle ne prend pas en charge le 2FA. Ainsi, si vous avez des informations d'identification valides mais que l'entrée principale est protégée par une 2FA, vous pourriez être en mesure d'abuser de xmlrpc.php pour vous connecter avec ces informations contournant la 2FA. Notez que vous ne pourrez pas effectuer toutes les actions que vous pouvez faire via la console, mais vous pourriez quand même parvenir à une exécution de code à distance (RCE) comme l'explique Ippsec dans https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s
DDoS ou balayage de ports
Si vous trouvez la méthode pingback.ping dans la liste, vous pouvez demander à Wordpress d'envoyer une requête arbitraire à n'importe quel hôte/port. Cela peut être utilisé pour demander à des milliers de sites Wordpress d'accéder à un emplacement spécifique (causant ainsi un DDoS à cet emplacement) ou vous pouvez l'utiliser pour faire scanner un réseau interne par Wordpress (vous pouvez indiquer n'importe quel port).
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-aea4b23cdd94102884b2c4c8d3a1a3f95a65065f%252F1_JaUYIZF8ZjDGGB7ocsZC-g.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=eea94585&sv=1)
Si vous obtenez faultCode avec une valeur supérieure à 0 (17), cela signifie que le port est ouvert.
Jetez un œil à l'utilisation de system.multicall
dans la section précédente pour apprendre comment abuser de cette méthode pour causer une DDoS.
DDoS
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-f6954fe287e981515a934d460113bd273380fc47%252Fimage%2520%28103%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=389465a3&sv=1)
wp-cron.php DoS
Ce fichier existe généralement à la racine du site Wordpress : /wp-cron.php
Lorsque ce fichier est accédé, une requête MySQL "lourde" est effectuée, ce qui pourrait être utilisé par des attaquants pour causer un DoS.
De plus, par défaut, le wp-cron.php
est appelé à chaque chargement de page (à chaque fois qu'un client demande une page Wordpress), ce qui peut poser des problèmes sur les sites à fort trafic (DoS).
Il est recommandé de désactiver Wp-Cron et de créer une tâche cron réelle à l'intérieur de l'hôte qui effectue les actions nécessaires à intervalles réguliers (sans causer de problèmes).
/wp-json/oembed/1.0/proxy - SSRF
Essayez d'accéder à https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net et le site Wordpress peut vous envoyer une requête.
Voici la réponse lorsque cela ne fonctionne pas :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-4f397783c2051b0d7102974efba93862fb6e7bcf%252Fimage%2520%28184%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=55a7a77b&sv=1)
SSRF
Cet outil vérifie si la méthode : pingback.ping et le chemin /wp-json/oembed/1.0/proxy existent, et s'il les trouve, il tente de les exploiter.
Outils Automatiques
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%283%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=90010f00&sv=1)
Utilisez Trickest pour construire facilement et automatiser des workflows alimentés par les outils communautaires les plus avancés au monde. Accédez dès aujourd'hui :
Accédez en écrasant un bit
Plus qu'une véritable attaque, il s'agit d'une curiosité. Dans le CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man, vous pouviez inverser 1 bit de n'importe quel fichier wordpress. Ainsi, vous pouviez inverser la position 5389
du fichier /var/www/html/wp-includes/user.php
pour annuler l'opération NOT (!
).
Panel RCE
Modification d'un fichier php du thème utilisé (identifiants d'administration requis)
Apparence → Éditeur de thème → Modèle 404 (à droite)
Modifiez le contenu pour un shell php :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-34081bf3a78aa2c1f724d60200556e1d57234101%252Fimage%2520%2821%29%2520%281%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=77e20d4&sv=1)
Recherchez sur internet comment accéder à cette page mise à jour. Dans ce cas, vous devez accéder ici : http://10.11.1.234/wp-content/themes/twentytwelve/404.php
MSF
Vous pouvez utiliser :
Plugin RCE
Plugin RCE
Plugin RCE
Il est possible de télécharger des fichiers .php en tant que plugin. Créez votre backdoor php en utilisant par exemple :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-d16665578087eeeeabbc220c92bac5d7569bc787%252Fimage%2520%28407%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=de4967fb&sv=1)
Ensuite, ajoutez un nouveau plugin :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-8668dea5b059b1fc486cb53cde1d8d65b849a027%252Fimage%2520%28409%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=24bdbd46&sv=1)
Téléchargez le plugin et appuyez sur Installer maintenant :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-12c26ff94b8d74da8199129602062d6b390dfae5%252Fimage%2520%28411%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=5ac834e1&sv=1)
Cliquez sur Procced :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-a18257e302f3bae245bef01690197799da17fdb7%252Fimage%2520%28412%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=d908b8d8&sv=1)
Probablement, cela ne semblera rien faire, mais si vous allez dans Média, vous verrez votre shell téléchargé :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-5d706c741824ed569e0401c561099cb720ae1a49%252Fimage%2520%28413%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=abe214e6&sv=1)
Accédez-y et vous verrez l'URL pour exécuter le reverse shell :
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-56a77483c7b7c56d4c76d92502ca78fb0a77667d%252Fimage%2520%28414%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=67aab8fc&sv=1)
Téléchargement et activation d'un plugin malveillant
Cette méthode implique l'installation d'un plugin malveillant connu pour être vulnérable et pouvant être exploité pour obtenir un shell web. Ce processus est effectué via le tableau de bord WordPress comme suit :
Acquisition du plugin : Le plugin est obtenu à partir d'une source comme Exploit DB comme ici.
Installation du plugin :
Accédez au tableau de bord WordPress, puis allez à
Tableau de bord > Extensions > Téléverser une extension
.Téléchargez le fichier zip du plugin téléchargé.
Activation du plugin : Une fois le plugin installé avec succès, il doit être activé via le tableau de bord.
Exploitation :
Avec le plugin "reflex-gallery" installé et activé, il peut être exploité car il est connu pour être vulnérable.
Le framework Metasploit fournit un exploit pour cette vulnérabilité. En chargeant le module approprié et en exécutant des commandes spécifiques, une session meterpreter peut être établie, accordant un accès non autorisé au site.
Il est à noter que ceci n'est qu'une des nombreuses méthodes pour exploiter un site WordPress.
Le contenu comprend des aides visuelles décrivant les étapes dans le tableau de bord WordPress pour l'installation et l'activation du plugin. Cependant, il est important de noter qu'exploiter des vulnérabilités de cette manière est illégal et contraire à l'éthique sans autorisation appropriée. Ces informations doivent être utilisées de manière responsable et uniquement dans un contexte légal, tel que les tests d'intrusion avec une autorisation explicite.
Pour des étapes plus détaillées, consultez : https://www.hackingarticles.in/wordpress-reverse-shell/**
Post Exploitation
Extraire les noms d'utilisateur et les mots de passe :
Changer le mot de passe administrateur :
Protection WordPress
Mises à jour régulières
Assurez-vous que WordPress, les plugins et les thèmes sont à jour. Confirmez également que la mise à jour automatique est activée dans wp-config.php :
Aussi, installez uniquement des plugins et thèmes WordPress fiables.
Plugins de sécurité
Autres recommandations
Supprimez l'utilisateur admin par défaut
Utilisez des mots de passe forts et 2FA
Passez en revue périodiquement les permissions des utilisateurs
Limitez les tentatives de connexion pour prévenir les attaques par force brute
Renommez le fichier
wp-admin.php
et autorisez l'accès uniquement en interne ou depuis certaines adresses IP.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2088318145-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Frq9WIQinJaxpWMvakjIQ%252Fuploads%252Fgit-blob-b98c9fbbc98929f4f21cab6c8d6d02d3844d23bd%252Fimage%2520%283%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29%2520%281%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=6a7dba5f&sv=1)
Utilisez Trickest pour créer et automatiser facilement des workflows alimentés par les outils communautaires les plus avancés au monde. Accédez dès aujourd'hui :
Last updated