场景:
网页使用以下javascript行显示错误登录页
<script>
let queryParams = new URLSearchParams(window.location.search);
document.getElementById("message").innerText = queryParams.get("message");
let link = document.getElementById("link");
link.innerText = queryParams.get("linkText");
link.href = queryParams.get("linkUrl");
</script>最后一个javascript行允许我将javascript隐藏在网页中的链接中,如下面所示。
1)用户单击此链接的缩短版本
2)用户点击“点击这里发光”
3)警报打开
我受到了这篇关于portswigger https://portswigger.net/web-security/cross-site-scripting/dom-based的文章的启发。
尤其是在这个例子中
如果正在使用JavaScript库(如jQuery ),请注意可以更改页面上DOM元素的接收器。例如,jQuery中的attr()函数可以更改DOM元素的属性。如果数据是从用户控制的源(如URL )读取,然后传递给attr()函数,那么就有可能操纵发送给XSS的值。例如,这里有一些JavaScript,它使用来自URL的数据更改锚元素的href属性:
$(function(){ $('#backLink').attr("href",(new URLSearchParams(window.location.search)).get('returnUrl')); });
您可以通过修改URL来利用此漏洞,以便location.search源包含恶意JavaScript URL。在页面的JavaScript将这个恶意URL应用到反向链接的href之后,单击反向链接将执行它:
?returnUrl=javascript:alert(document.domain)
问题:在我看来,是一种类似的攻击,但有人告诉我这是一种自我XSS。不管怎么说,我看到self期望用户在他的控制台中自粘贴javascript代码。所以我很困惑,我想知道是哪种类型的。另外,是否可以认为是中等/高度严重的漏洞?
发布于 2020-06-11 17:47:47
命名并不重要,但是
https://stackoverflow.com/questions/62321652
复制相似问题