当前位置: 首页 > 知识库问答 >
问题:

在Veracode(CWE 117)中使用slf4j记录器时的CRLF注入漏洞

秋建义
2023-03-14

这是一个slf4j记录器,我一直在尝试使用2个消息参数记录错误。

catch(ExecutionException executionException) {

LOGGER.error("TimeoutException caught , Error: " + SSG_TIMEOUT.getErrorText() 
       + ". Message: " +executionException.getMessage());    
}  

SSG_超时。getErrorText()结果为字符串“遇到超时错误”

我用过的东西

>

return entry.replace("\t", "\\t").replace("\b", "\\b").replace("\n", 
    "\\n").replace("\r", "\\r").replace("\f", "\\f").replace("\u0000", 
    "\\0").replace("\\a", "\\a").replace("\\v", "\\v").replace("\\e", 
    "\\e").replaceAll("\\p{Cntrl}", "").replace("'", "\\'").replace("\"", 
    "\\\"").replace("\\", "\\\\");

StringEscapeUtils。escapeJson(字符串错误消息)

字符串生成器附加StringescapeJson(StringBuilder.toString())

不过,我在veracode报告中看到了这个问题。

有什么建议吗?

共有1个答案

雍志新
2023-03-14

首先,前两种消毒方法是正确的,只是Veracode不支持。

在使用方法之前,您应该访问https://help.veracode.com/r/review_cleansers

对于上述问题,StringUtils。normalizeSpace()工作正常。也可以使用“StringUtils.escapeJava”,但它似乎已被弃用

解决方案:

    catch(ExecutionException executionException) {

    LOGGER.error("TimeoutException caught , Error: " + 
    StringUtils.normalizeSpace(SSG_TIMEOUT.getErrorText() 
    }  
 类似资料:
  • 这是正确的解决办法吗?我还能做什么? 这是报告信息:标题:日志的不正确输出中和 描述:函数调用可能导致日志伪造攻击。将未经处理的用户提供的数据写入日志文件可使攻击者伪造日志条目或将恶意内容注入日志文件。损坏的日志文件可用于掩盖攻击者的踪迹,或作为攻击日志查看或处理实用程序的传递机制。例如,如果web管理员使用基于浏览器的实用程序查看日志,则可能会发生跨站点脚本攻击。

  • 我一直在研究一个veracode缺陷,我相信它已经被修复,因为我们已经在做编码了。forJava。但它仍被视为一个缺陷进行扫描。如果我错过了什么,有人能帮我吗?以下是代码片段: 非常感谢你的帮助。

  • CRLF 注入是一类漏洞,在用户设法向应用插入 CRLF 时出现。在多种互联网协议中,包括 HTML,CRLF 字符表示了行的末尾,通常表示为\r\n,编码后是%0D%0A。在和 HTTP 请求或响应头组合时,这可以用于表示一行的结束,并且可能导致不同的漏洞,包括 HTTP 请求走私和 HTTP 响应分割。 对 HTTP 请求走私而言,它通常在 HTTP 请求传给服务器,服务器处理它并传给另一个服

  • 我有一个具有@Slf4j注释的类。 我试着写一个测试和模拟记录仪,但它不起作用。 测试是这样的: 这是我得到的错误: 问题是,如何嘲笑伐木工?

  • 我已将 Log4J2 添加到我的应用程序中。我通过LIB将所有Log4J2.jar文件复制到,并创建了Log4J2.xml文件来支持它。我的代码已更新为导入必要的日志管理器和记录器 API。然后,我添加了静态的最终记录器方法,并在我的代码中调用了记录器 API。一切都在Eclipse中编译文件。我继续在 DEV 计算机上启动服务器以对其进行验证。启动服务器后,我收到以下错误: 我的配置有什么问题?

  • 问题内容: 我正在尝试使用Spring将SLF4J记录器注入到这样的类中: 我找到了已经实现的类。但是问题是我无法获得有关注射目标的任何信息: FactoryBean甚至是正确的方法吗?使用picocontainers 工厂注入时,您会传入目标的。实际上,这有点棘手。但是您如何在春季完成这项工作? 问题答案: 我使用自定义BeanFactory进行了解析。如果有人提出更好的解决方案,我将很高兴听到