
Validierungsziel: minimaler WordPress-Kernausschnitt, der die wp2shell (CVE-2026-63030 + CVE-2026-60137) REST-to-SQLi-Kette reproduziert
Eine kompakte, abhängigkeitsfreie Neuumsetzung eines kleinen Ausschnitts der WordPress-REST-API – gerade genug, um eine öffentliche Beitragssammlung bereitzustellen und mehrere Unteranfragen in einem Durchlauf auszuführen. Praktisch, um zu zeigen, wie WordPress-Routing, WP_Query und $wpdb zusammenpassen, ohne die gesamte Kernsoftware einzubeziehen.
| Methode | Route | Zweck |
|---|
GET | /wp-json/wp/v2/posts | Beiträge auflisten. Unterstützt author_exclude, per_page. |
POST | /wp-json/batch/v1 | Mehrere Unteranfragen in einer Anfrage ausführen. |
Beide Routen sind öffentlich (keine Authentifizierung), was den Standardeinstellungen der Kern-Beitragssammlung entspricht.
index.php Front-Controller / Router
wp-includes/
functions.php absint / wp_parse_id_list / wp_parse_url
class-wpdb.php schlanker $wpdb (prepare / get_results)
class-wp-query.php Post-Abfrage-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'
Erfordert PHP ≥ 8.0. Eine MySQL-Datenbank ist optional – ohne eine gibt $wpdb das SQL zurück, das es ausgeführt hätte, sodass Sie die generierten Abfragen sehen können.