
검증 대상: wp2shell (CVE-2026-63030 + CVE-2026-60137) REST-to-SQLi 체인을 재현하는 최소 WordPress 코어 슬라이스
워드프레스 REST API의 작은 부분을 의존성 없이 재구현한 경량판입니다. 공개 게시물 모음을 제공하고 한 번의 왕복으로 여러 하위 요청을 실행할 수 있을 만큼 충분합니다. 전체 코어를 가져오지 않고 워드프레스 라우팅, WP_Query, $wpdb가 어떻게 결합되는지를 가르치는 데 유용합니다.
| 메소드 | 경로 | 용도 |
|---|---|---|
GET | /wp-json/wp/v2/posts | 게시물 목록을 가져옵니다. author_exclude, per_page를 지원합니다. |
POST | /wp-json/batch/v1 | 하나의 요청으로 여러 하위 요청을 실행합니다. |
두 경로 모두 인증이 필요 없는 공개 경로이며, 핵심 게시물 컬렉션의 기본값과 일치합니다.
index.php 프론트 컨트롤러 / 라우터
wp-includes/
functions.php absint / wp_parse_id_list / wp_parse_url
class-wpdb.php 경량 $wpdb (prepare / get_results)
class-wp-query.php 게시물 쿼리 빌더
rest-api/
class-wp-rest-request.php
class-wp-rest-server.php 라우팅 + /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을 반환하여 생성된 쿼리를 확인할 수 있습니다.