
Cible de validation : tranche minimale du noyau WordPress reproduisant la chaîne REST-to-SQLi de wp2shell (CVE-2026-63030 + CVE-2026-60137)
Une réimplémentation compacte et sans dépendance d'une petite partie de l'API REST de WordPress — juste assez pour servir une collection publique d'articles et exécuter plusieurs sous-requêtes en un seul aller-retour. Pratique pour enseigner comment le routage de WordPress, WP_Query et $wpdb s'assemblent sans avoir à inclure tout le noyau.
| Méthode | Route | Description |
|---|---|---|
GET | /wp-json/wp/v2/posts | Liste les articles. Prend en charge author_exclude, per_page. |
POST | /wp-json/batch/v1 | Exécute plusieurs sous-requêtes en une seule requête. |
Les deux routes sont publiques (sans authentification), conformément aux valeurs par défaut de la collection d'articles de base.
index.php front controller / router
wp-includes/
functions.php absint / wp_parse_id_list / wp_parse_url
class-wpdb.php thin $wpdb (prepare / get_results)
class-wp-query.php post query builder
rest-api/
class-wp-rest-request.php
class-wp-rest-server.php routing + /batch/v1
endpoints/class-wp-rest-posts-controller.php /wp/v2/posts
php -S 127.0.0.1:8080
curl 'http://127.0.0.1:8080/wp-json/wp/v2/posts?author_exclude[]=3'
Nécessite PHP ≥ 8.0. Une base de données MySQL est facultative — sans elle, $wpdb renvoie le SQL qu'il aurait exécuté afin que vous puissiez voir les requêtes générées.