Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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
Research_Successful_Errors — Whitepaper que presenta técnicas Error-Based y Boolean Error-Based Blind para SSTI y Code Injection, con payloads universales para seis lenguajes de programación e integración en SSTImap. | Kitploit
Herramientas/GitHubGitHub/vladko312/research_successful_errors
Análisis de VulnerabilidadesAnálisis de CódigoExplotación de Aplicaciones WebFuzzingCTFPruebas de PenetraciónPapers e InvestigaciónAprendizaje y EducaciónDesarrollo de Payloads
GitHubvladko312/research_successful_errors

Research_Successful_Errors

Whitepaper que presenta técnicas Error-Based y Boolean Error-Based Blind para SSTI y Code Injection, con payloads universales para seis lenguajes de programación e integración en SSTImap.

Ver Repositorio
1211313hace 7 mesesRevisado por Kitploit

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

Successful Errors: Nuevas Técnicas de Inyección de Código y SSTI

Versión del informe Última modificación

[!NOTE] Esta es la segunda versión del documento técnico basado en los resultados que presenté antes de lanzar SSTImap versión 1.3.1. Las mejoras adicionales se adaptarán a este formato como versión 1.2 de la investigación en una fecha posterior.

  • Cargas útiles
  • Documento técnico imprimible
  • Diapositivas

Algunas categorías de vulnerabilidades pueden, a primera vista, parecer bien conocidas y algo obvias. Podría parecer que todas las técnicas posibles para esas vulnerabilidades son conocidas, por lo que solo se podrían descubrir cargas útiles para casos inusuales. Server-Side Template Injection (SSTI) y Code Injection a menudo se consideran dentro de esas categorías bien conocidas.

A veces, se encuentran técnicas nuevas con nombres autoexplicativos para esas vulnerabilidades. Muchos investigadores podrían considerar esas técnicas como bien conocidas o incluso recordar haberlas utilizado, pero en realidad, la técnica podría existir solo como un nombre comúnmente entendido sin investigación, descripciones o cargas útiles universales. Podría mencionarse un par de veces junto con cargas útiles para casos muy específicos, pero no se probaría y el potencial real de esa técnica podría permanecer sin descubrir durante años.

Esta investigación introduce dos técnicas de este tipo para Code Injection y SSTI: Error-Based y Boolean Error-Based Blind. Proporcionaré cargas útiles para Code Injection y SSTI en seis lenguajes de programación: Python, PHP, Java, Ruby, NodeJS y Elixir. Además, proporcionaré cargas útiles de detección universales, capaces de detectar incluso inyecciones ciegas.

Proporcionaré la cronología completa de mi investigación, desde encontrar las primeras pistas hasta las conclusiones finales. También exploraré el proceso de creación de nuevas cargas útiles para lenguajes de programación y plantillas no mencionados en esta investigación.

En esta investigación mostraré ejemplos de aplicaciones prácticas de las nuevas técnicas y compartiré áreas potenciales de investigación adicional. Todas las cargas útiles proporcionadas pueden utilizarse para detectar y explotar vulnerabilidades en aplicaciones reales. Además, todas las cargas útiles proporcionadas se agregaron a la herramienta de código abierto SSTImap, lo que facilita la aplicación de los resultados de esta investigación a objetivos del mundo real.

Esquema

  • Introducción
  • Pistas
    • Dust.JS
    • Twig (CVE-2022-23614)
    • JSONPath Plus (CVE-2025-1302)
    • expr-eval (CVE-2025-13204)
  • SSTI basada en errores
    • Python
    • PHP
    • Java
    • Ruby
    • NodeJS
    • Elixir
    • Detección genérica
    • Desarrollo de cargas útiles
  • SSTI ciega basada en errores booleanos
    • Detección de errores
    • Python
    • PHP
    • Java
    • Ruby
    • NodeJS
    • Elixir
    • Detección genérica
    • Desarrollo de cargas útiles
  • Aplicación práctica
    • expr-eval (CVE-2025-13204)
    • JSONPath Plus (CVE-2025-1302)
    • Twig (CVE-2022-23614)
    • Dust.JS
  • Conclusiones
  • Referencias

Introducción

Las vulnerabilidades de Server-Side Template Injection aparecen en sitios web dinámicos que utilizan motores de plantillas para el renderizado del lado del servidor, cuando la entrada del usuario no confiable se inserta en la plantilla antes de que sea procesada por el motor de plantillas. Un actor malicioso puede insertar sintaxis de plantilla válida, que será procesada por un motor de plantillas durante el renderizado de la página. Muchos motores de plantillas proporcionan alguna forma de funcionalidad de ejecución de código, lo que a menudo conduce a Remote Code Execution (RCE) en el servidor objetivo. Esta investigación se centra en los motores de plantillas que proporcionan dichas capacidades en caso de explotación.

Las vulnerabilidades SSTI se conocen desde 2015, y desde entonces se han descubierto muchas cargas útiles que permiten la exfiltración de información, elusión de filtros y escape de sandbox. A pesar de eso, la mayoría de las cargas útiles o bien renderizan el resultado directamente en la página o se centran en el hecho de la ejecución del código en sí, descartando los resultados producidos por ese código.

Flujo de inyección renderizada

Otra técnica bien conocida de SSTI es la ciega basada en tiempo, que implica agregar un retraso al comando de shell ejecutado. Esta técnica permite determinar el éxito de la ejecución del código inyectado, pero requiere adivinar la carga útil para la ejecución del comando del sistema operativo, lo que dificulta la detección de SSTI ciega en un motor de plantillas desconocido para el investigador.

Flujo de inyección ciega basada en tiempo

La clase de vulnerabilidad SSTI y ambas técnicas de explotación conocidas fueron descubiertas en 2015 por James Kettle. Esas técnicas se describen con gran detalle en su investigación “Server-Side Template Injection: RCE For The Modern Web App”. [^1] En diez años desde entonces, no se han documentado nuevas técnicas de explotación. Solo se descubrió una técnica de detección en 2023, que utiliza cargas útiles políglotas para probar múltiples motores de plantillas a la vez. Esta técnica fue descubierta por Maximilian Hildebrand y descrita en su investigación “Improving the Detection and Identification of Template Engines for Large-Scale Template Injection Scanning”. [^2] La técnica se centra en determinar los motores de plantillas utilizando la cantidad mínima de solicitudes, pero solo funciona para contextos de inyección simples.

Flujo de detección basada en políglotas

La mayoría de los motores de plantillas basados en lenguajes de programación interpretados, como PHP, NodeJS y Python, permiten directamente evaluar las expresiones de los lenguajes de programación correspondientes. Esta capacidad nos permite usar cargas útiles para una categoría más amplia de vulnerabilidades de Code Injection, envolviéndolas en el formato correcto de la etiqueta de plantilla.

Code Injection también puede ocurrir sin SSTI, cuando la entrada del usuario no confiable puede llegar a eval() o una función peligrosa similar. A menudo se considera que la explotación de Code Injection es simplemente programar en el lenguaje correspondiente, por lo que las técnicas y cargas útiles solo se documentan para ejemplos específicos de vulnerabilidades, que requieren adaptar el código a la aplicación objetivo.

Descargar herramienta