
Alvo de validação: recorte mínimo do núcleo do WordPress reproduzindo a cadeia REST-to-SQLi wp2shell (CVE-2026-63030 + CVE-2026-60137)
Uma reimplementação compacta e sem dependências de uma pequena parte da REST API do WordPress — o suficiente para servir uma coleção pública de posts e executar várias sub-requisições em uma única viagem de ida e volta. Útil para ensinar como o roteamento do WordPress, WP_Query e $wpdb se encaixam sem puxar todo o core.
| Método | Rota | Finalidade |
|---|---|---|
GET | /wp-json/wp/v2/posts | Listar posts. Suporta author_exclude, per_page. |
POST | /wp-json/batch/v1 | Executar várias sub-requisições em uma única requisição. |
Ambas as rotas são públicas (sem autenticação), correspondendo aos padrões da coleção de posts do 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'
Requer PHP ≥ 8.0. Um banco de dados MySQL é opcional — sem um, $wpdb retorna o SQL que teria executado para que você possa ver as consultas geradas.