是否可以使用jQuery的.attr(“href”,value)方法为 tags?执行XSS攻击

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

给出的是以下html片段,它是在html文件中静态输入的:

<a id="link001" href="https://google.com" target="_blank">Google</a>

请考虑引用href的属性值。当攻击者可以在以下上下文中为变量unsafe_string提供任意值时,是否可以执行XSS攻击:

$('#link001').attr("href", unsafe_string);

我的问题是:注入和执行恶意代码是否可能?攻击者只控制unsafe_string,没有其他任何东西。攻击者可以假设受害者最终会点击该链接。

用户可以通过点击链接转发到某个恶意网站的情况应该被忽略。

jquery html xss
1个回答
3
投票

是的,这是不安全的,可以将javascript:添加到恶意代码中:

$('#link001').attr("href", "javascript:alert('evil')");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="link001" href="https://google.com" target="_blank">Google</a>
© www.soinside.com 2019 - 2024. All rights reserved.