Burp 发现了一个潜在的 DOM XSS 漏洞:
应用程序可能容易受到基于 DOM 的跨站点脚本的攻击。从 window.location.href 读取数据并传递给 DOM 元素的“setAttribute()”函数
在这个例子中,易受攻击的代码是这样的(为了保密,我不能包括实际的原始代码):
var thing = windows.location.href;
...
element.setAttribute("fill", thing);
OWASP DOM XSS 备忘单说“ JavaScript Escape Before Inserting Untrusted Data into HTML Attribute Subcontext within the Execution Context”。我不太确定执行上下文是什么意思。
做一些快速测试(在 Chrome 中),这很容易受到攻击:
document.getElementById("bob").setAttribute("onclick", "alert(1)");
但这不是:
document.getElementById("bob").setAttribute("fill", "" onclick="alert(1)");
鉴于这一切,我觉得 Burp 报告了误报。但我担心我可能遗漏了一些东西,因此我们将不胜感激。
我只对在最近的浏览器中可以利用它感兴趣。我对“这不是最佳实践”或“在 Mac 上的 IE 4 中可利用”不感兴趣。