
Target di validazione: slice minima del core di WordPress che riproduce la catena REST-to-SQLi di wp2shell (CVE-2026-63030 + CVE-2026-60137)
Una reimplementazione compatta e senza dipendenze di una piccola parte dell'API REST di WordPress — sufficiente per servire una raccolta pubblica di post ed eseguire più sotto-richieste in un'unica chiamata. Utile per insegnare come il routing di WordPress, WP_Query e $wpdb si combinano senza dover includere tutto il core.
| Metodo | Route | Scopo |
|---|---|---|
GET | /wp-json/wp/v2/posts | Elenca i post. Supporta author_exclude, per_page. |
POST | /wp-json/batch/v1 | Esegue più sotto-richieste in un'unica richiesta. |
Entrambe le route sono pubbliche (nessuna autenticazione), come da impostazioni predefinite per la raccolta di post del core.
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'
Richiede PHP ≥ 8.0. Un database MySQL è opzionale — senza, $wpdb restituisce l'SQL che avrebbe eseguito, così puoi vedere le query generate.