
検証対象: wp2shell (CVE-2026-63030 + CVE-2026-60137) のREST-to-SQLiチェーンを再現するWordPressコアの最小限の一部
WordPress の REST API の一部を再実装した、コンパクトで依存関係のないライブラリです。公開された投稿コレクションを提供し、複数のサブリクエストを1回のラウンドトリップで実行するのに十分なものです。WordPress のルーティング、WP_Query、$wpdb がどのように連携するかを、コア全体を読み込まずに教えるのに便利です。
| Method | Route | 目的 |
|---|---|---|
GET | /wp-json/wp/v2/posts | 投稿を一覧表示します。author_exclude、per_page をサポートします。 |
POST | /wp-json/batch/v1 | 1つのリクエストで複数のサブリクエストを実行します。 |
両方のルートは公開(認証なし)であり、コアの投稿コレクションのデフォルトと一致しています。
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'
PHP 8.0以上が必要です。MySQLデータベースは任意です — 存在しない場合、$wpdb は実行するはずだったSQLを返すため、生成されたクエリを確認できます。