首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串输入参数的SSRF CheckMarx漏洞

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

Stack Overflow用户
提问于 2017-06-20 11:59:06
回答 1查看 7.5K关注 0票数 3

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

代码语言:javascript
复制
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调用第三方URL,其中param1作为查询字符串参数传递。

来自CheckMarx的SSRF是:

代码语言:javascript
复制
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行,我

代码语言:javascript
复制
public String method1(@WebParam(name = "param1") final String param1) {

在87号线我有

代码语言:javascript
复制
private String processRequest(final GetMethod method) throws IOException {

对于解决此SSRF漏洞的任何帮助都将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-03-27 17:51:37

要确认SSRF漏洞,还需要processRequest方法的代码片段。据我所知,CheckMarx将问题报告为"param1“应该包含第三方URL,应用程序正在使用该URL。减轻战略成果框架风险的可能性如下:

  • 您是否需要第三方库来执行功能?如果没有,那么您可以安全地删除该代码。
  • 如果您需要第三方和URL保持不变,那么您可以硬编码该URL。
  • 如果你不能硬代码,而且它一直在变化,那么你能列出可能的第三方URL吗?所有可能的第三方URL必须手动检查并执行白列表以允许所需的URL。或者,所有可能的URL都应该插入到后端的文件/数据库中,用户可以传递该特定URL的id。
  • 如果URL每次都在更改,并且没有办法获得白名单,则应该防止无法进一步损害应用程序的方法。在这种情况下,需要方法的代码片段,并且应该正确地检查方法。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44652450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档