在我当前的Spring MVC应用程序中,我们的网关模块具有以下代码。
URI uri = new URI(restURLProtocol, null, URLDomain, URLPort, "/api" + request.getRequestURI(), request.getQueryString(), null);
网关模块将使用AsyncRestTemplate调用同一服务器上的另一个应用程序,效果很好。
但是像chekmarx这样的工具建议代码request.getString()对于SSRF(服务器端请求伪造)攻击是成功的,因为攻击者可以控制目标的请求,通过在请求中发送URL或其他数据。
所以有什么方法可以检查request.getString()
是否容易受到Java中的SSRF攻击?在我当前的Spring MVC应用程序中,我们的网关模块具有以下代码。 URI uri =新URI(restURLProtocol,null,URLDomain,URLPort,“ / api” + request.getRequestURI(),request ....
很难通过POC(概念证明)来证明代码审查发现。在这种情况下,在理论上假设SSRF可能发生。当查询字符串值出现在任何代码段中,并且用户在该查询字符串中输入其他URL时,如果得到响应,则可能会导致SSRF。您已阅读本文-https://www.acunetix.com/blog/articles/server-side-request-forgery-vulnerability/。