我正在为我的一个项目运行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调用第三方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漏洞的任何帮助都将不胜感激。谢谢。
发布于 2018-03-27 17:51:37
要确认SSRF漏洞,还需要processRequest方法的代码片段。据我所知,CheckMarx将问题报告为"param1“应该包含第三方URL,应用程序正在使用该URL。减轻战略成果框架风险的可能性如下:
https://stackoverflow.com/questions/44652450
复制相似问题