gpt4 book ai didi

go - 阻止来自 gorilla/mux 的打开 URL 重定向

转载 作者:行者123 更新时间:2023-12-01 22:24:55 24 4
gpt4 key购买 nike

我正在使用 Go + gorilla/mux v1.4 框架开发一个 RESTful Web 应用程序。发布后的一些基本安全测试显示 Open URL Redirection应用程序中的漏洞,允许用户使用外部 URL 提交特制请求,导致服务器以 301 重定向响应。

我使用 Burp Suite 对此进行了测试并发现任何重定向到应用程序中外部 URL 的请求似乎都以 301 Moved Permanently 响应。我一直在寻找在发送 301 之前拦截这些请求的所有可能方法,但这种行为似乎是 be baked into the net/http server implementation .

这是发送到服务器的原始请求 (myapp.mycompany.com:8000):

GET http://evilwebsite.com HTTP/1.1
Accept: */*
Cache-Control: no-cache
Host: myapp.mycompany.com:8000
Content-Length: 0

任何时候的响应都是:
HTTP/1.1 301 Moved Permanently
Location: http://evilwebsite.com/
Date: Fri, 13 Mar 2020 08:55:24 GMT
Content-Length: 0

尽管检查了 request.URL 以防止在 http.handler 中发生这种类型的重定向,但我没有任何运气让请求到达处理程序。似乎基本 http 网络服务器正在执行重定向,但不允许它访问我在 PathPrefix("/").Handler 代码中定义的自定义处理程序代码。

我的目标是确保应用程序针对此类请求返回 404-Not Found 或 400-Bad Request。有没有其他人遇到过 gorilla /多路复用器的这种情况。我在一个 Jetty 网络应用程序上进行了同样的尝试,发现它返回了一个完全有效的 404。我已经在这工作了几天,并且真的可以使用一些想法。

最佳答案

这不是声称的开放 URL 重定向安全问题。此请求无效,因为路径包含的绝对 URL 与 Host 的域不同。标题。没有一个理智的客户端(即浏览器)可以被诱使首先发出这样一个无效的请求,因此没有实际的攻击向量。

当然,可以创建一个自定义客户端来提交这样的请求。但也可以使用自定义客户端以非标准方式解释服务器响应或直接访问恶意 URL,甚至无需联系您的服务器。这意味着在这种情况下,客户端本身将是问题,而不是服务器响应。

关于go - 阻止来自 gorilla/mux 的打开 URL 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60668000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com