在以下情况下是否可以拆分HTTP响应:
String requestFilename = request.getParameter("name");
response.addHeader("content-disposition", "attachment; filename=" + requestFilename);我直接将未清理的请求参数附加到响应头。
我的问题是,通过使用CRLF字符,我们可以将我们自己的头插入到响应中。
到目前为止,我已经尝试过\r\n和%0D%0A,但它们都不起作用。
response.addHeader()对这种攻击有免疫力吗?
有人能给我解释一下这个攻击是如何执行的吗?
发布于 2020-01-08 01:04:51
在您的情况下,是否可以拆分http响应将取决于承载代码的servlet容器。
例如,Tomcat防范常见的安全漏洞,使用CORS Filter处理响应拆分(至少对于传入的请求)。
Tomcat还过滤写入响应的值-请参阅Http11OutputBuffer (line 383),它可以防止损坏的值以某种方式作为标头值返回给客户端。
永远不要说永远不会,但如果你使用的是像Tomcat这样的流行web服务器的最新版本,你应该是安全的,不会出现像响应分裂这样的众所周知的漏洞。
https://stackoverflow.com/questions/28851641
复制相似问题