重定向到新网址时出现XSS问题

时间:2016-10-27 06:13:36

标签: jsp xss

我正在处理一个旧的jsp应用程序,其中包含类似于以下代码:

<%
    String ref = request.getParameter("ref");
    response.sendRedirect(ref);
%>

参数ref在URL中清晰可见,任何人都可以编辑它。根据OWASP安全标准,此代码易受XSS攻击。根据OWASP: 通过将用户重定向到恶意站点,此漏洞可用作网络钓鱼诈骗的一部分。如果未应用验证,恶意用户可以创建超链接以将用户重定向到未经验证的恶意网站。

在我的情况下,这仅用于注销页面。在任何情况下,恶意用户都无法控制此任何其他用户会话的参数。此外,此变量的值不受用户输入控制。

如果这仍然是XSS漏洞,请分享您的想法吗?

1 个答案:

答案 0 :(得分:0)

在旧浏览器中容易受到XSS的攻击,并且在所有浏览器中都会出现HTTP响应拆分和开放重定向。

问题是response.sendRedirect()发送带有Location:标头的301 http响应,这样,用户就可以创建一个链接,该链接将会运行javascript代码,该代码将在某些操作中运行浏览器(单击浏览器错误页面中的链接,单击重新加载等)。详见here(攻击#4-#8)。我认为这在最近的浏览器中不再起作用了。

但是,它仍然容易受到HTTP response splitting(有时是标头注入)的攻击,因为攻击者可以在参数中插入换行符,因此可以将响应头添加到应用程序响应中。

open redirection也很容易受到攻击。攻击者可以创建一个指向应用程序域的链接,该链接会将受害用户重定向到攻击者选择的任何网站。