
Escáner automatizado para la vulnerabilidad de carga de archivos no autenticada CVE-2019-12102 en Kentico CMS. Verifica dominios, confirma con el parámetro hash y genera objetivos potencialmente vulnerables y confirmados.
El Escáner CVE-2019-12102 es una herramienta automatizada para detectar la vulnerabilidad de Carga de Archivos / Exposición de Archivos sin Autenticación en Kentico CMS versiones 11 a 12. Esta vulnerabilidad es causada por un control de acceso inadecuado en el endpoint /cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx. La herramienta comprueba si un dominio es vulnerable verificando la respuesta del endpoint y guarda los resultados en archivos separados para dominios Potencialmente Vulnerables y Vulnerables Confirmados.
La vulnerabilidad CVE-2019-12102 permite a los atacantes:
Se puede acceder al endpoint vulnerable (/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx) sin autenticación si el parámetro hash no se valida correctamente. Si la URL redirige a /CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash=, se considera que el dominio es vulnerable.
Ctrl+C).requests, coloramaClona este repositorio:
git clone https://github.com/Egi08/CVE-2019-12102-Scanner.git
cd CVE-2019-12102-Scanner
Instala las dependencias:
pip install -r requirements.txt
(Si el archivo requirements.txt no existe, créalo con el siguiente contenido):
requests
colorama
Prepara un archivo de entrada (domains.txt) que contenga una lista de dominios, un dominio por línea. Ejemplo:
example.com
another-example.com
vulnerable-site.com
python cve_2019_12102_scanner.py -l <archivo_entrada> -p <archivo_salida_potenciales> -c <archivo_salida_confirmados>
-l, --list: Ruta al archivo que contiene la lista de dominios (obligatorio).-p, --potentially: Archivo de salida para dominios Potencialmente Vulnerables (opcional, por defecto: potentially_vulnerable.txt).-c, --confirmed: Archivo de salida para dominios Vulnerables Confirmados (opcional, por defecto: confirmed_vulnerable.txt).python cve_2019_12102_scanner.py -l domains.txt -p potentially_vulnerable.txt -c confirmed_vulnerable.txt
[*] Iniciando el escáner de vulnerabilidades para CVE-2019-12102...
[*] Comprobando: http://example.com
[-] No vulnerable: http://example.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
[*] Comprobando: http://vulnerable-site.com
[+] Potencialmente vulnerable: http://vulnerable-site.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
[+] Vulnerable confirmado: http://vulnerable-site.com/CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash=13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf
[+] Resultados guardados:
Dominios potencialmente vulnerables guardados en potentially_vulnerable.txt
Dominios vulnerables confirmados guardados en confirmed_vulnerable.txt
potentially_vulnerable.txt)http://vulnerable-site.com/cmsmodules/medialibrary/formcontrols/liveselectors/insertimageormedia/tabs_media.aspx
confirmed_vulnerable.txt)http://vulnerable-site.com/CMSMessages/accessdenied.aspx?resstring=dialogs.missinghashtext&hash=13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf
Pruebas Éticas:
Tiempo de Espera (Timeout):
requests.get:
response = requests.get(full_url, timeout=20) # Timeout de 20 segundos
Manejo de Errores:
Guardado Seguro:
Ctrl+C).Parámetro Hash:
test_hash actualmente usa el hash de ejemplo (13b203251094c6c51e1f7974b22e84538003b9c23754bc7b24a19891e6d476bf). Ajústalo si es necesario.¡Las contribuciones son bienvenidas! Si deseas contribuir, por favor:
git checkout -b feature/nombre-de-tu-funcion
git commit -m "Añade tus cambios aquí"
git push origin feature/nombre-de-tu-funcion
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Con esta documentación, puedes subir fácilmente el script a GitHub y proporcionar instrucciones claras para que otros usen la herramienta.