这是否被视为DOM-XSS或自XSS或两者兼而有之?

问题描述 投票:0回答:1

SCENARIO:

网页显示使用这些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隐藏在网页中的链接中,从而制作出如下所示的网址。

https://vulnerablewebsite.com/folder/custom.html?message=not+correct?&linkUrl=javascript:alert(1)&linkText=click+here+to+shine

1)用户单击此链接的简化版

2)用户单击“单击此处发光”

3)警报打开

我的灵感来自于portswigger上的这篇文章https://portswigger.net/web-security/cross-site-scripting/dom-based特别是从此示例

如果正在使用JavaScript库(例如jQuery,请注意 可以更改页面上的DOM元素的接收器。例如, jQuery中的attr()函数可以更改DOM元素的属性。如果 数据是从用户控制的源(例如URL)中读取的,然后 传递给attr()函数,则有可能进行操纵 发送给XSS的值。例如,这里有一些JavaScript 使用来自以下位置的数据更改锚元素的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-XSS期望用户在控制台中自我粘贴javascript代码。所以我很困惑,我想知道它是哪种类型。另外,是否可以视为中等或高度严重性的漏洞?

javascript web xss
1个回答
1
投票

命名没什么大不了,但是

  • 这绝对是一个漏洞,根据CVSSv3的说法,它很可能是一种媒介,但您可以针对这种特定情况进行计算。

  • 这不是xss本身,您自己通过链接显示了一种方法,如果攻击者将其发送给受害者,则该页面将很容易受到攻击。

  • 这绝对是dom xss,因为它完全在javascript中,不需要服务器往返。

© www.soinside.com 2019 - 2024. All rights reserved.