gpt4 book ai didi

java - 字符串输入参数的 SSRF CheckMarx 漏洞

转载 作者:行者123 更新时间:2023-11-30 06:39:22 99 4
gpt4 key购买 nike

我正在为我的一个项目运行 CheckMarx 扫描,它针对方法的输入字符串参数之一存在 SSRF 漏洞。我的方法如下所示,参数 param1 抛出 SSRF 漏洞。

public String method1(@WebParam(name = "param1") final String param1) {
LOG.info("Inside method1...")
if (StringUtils.isBlank(param1) || !StringUtils.isAlphanumeric(param1)) {
throw new DataManipulationException();
}
// Call 3rd party here (method in line 87 below)
}

在该方法内,我使用 HttpClient GetMethod 调用第 3 方 URL,并将 param1 作为查询字符串参数传递。

来自 CheckMarx 的 SSRF 是:

The application sends a request to a remote server, for some resource, using @DestinationElement in \src\com\test\Test.java:87. However, an attacker can control the target of the request, by sending a URL or other data in param1 at \src\com\test\Test.java:55.

在第 55 行,我有

public String method1(@WebParam(name = "param1") final String param1) {

在第 87 行我有

private String processRequest(final GetMethod method) throws IOException {

感谢任何解决此 SSRF 漏洞的帮助。谢谢。

最佳答案

为了确认SSRF漏洞,还需要processRequest方法的代码片段。据我了解,CheckMarx 报告的问题是“param1”应该包含第三方 URL 并且该 URL 正在被应用程序使用。可能有以下可能性来减轻 SSRF 风险:

  • 您需要第三方库来执行函数吗?如果否,那么您可以安全地删除该代码。
  • 如果您需要第三方且网址保持不变,那么您可以对该网址进行硬编码。
  • 如果您无法进行硬编码并且它不断变化,那么您能否列出可能的第三方网址?必须手动审查所有可能的第三方 URL 并执行白名单以允许所需的 URL。或者所有可能的 URL 应插入到后端的文件/数据库中,并且用户可以传递该特定 URL 的 ID。
  • 如果 URL 每次都在变化,并且无法将其列入白名单,则应该阻止这种不会进一步损害应用程序的方法。在这种情况下,需要方法的片段代码,并且应该正确审查方法。

关于java - 字符串输入参数的 SSRF CheckMarx 漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44652450/

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