Apache Log4j 2远程代码执行漏洞,和很多注入攻击一样,能够得以实施的两个关键条件在于:
对于SQL注入,就是用户提交的数据,被数据库系统编译而产生了服务提供者预料之外的非“数据”行为
本次Apache Log4j 2存在的远程代码执行漏洞也一样,未经检查或者未经充分检查的用户输入数据,意外变成了代码被执行。
攻击者通过JNDI注入漏洞,当程序将用户输入的数据记入日志时,利用用户能够控制向记录日志中输入数据的操作,来实现这段特殊构造的请求,可以触发 Apache Log4j2 中的远程代码执行漏洞。
攻击者首先向漏洞服务器发起攻击请求,通过Log4j2记录攻击请求中包含的基于JNDI和LDAP的恶意负载向漏洞服务器发起攻击请求(利用JNDI来执行LDAP协议注入的可执行代码)。
记录的恶意负载被触发后,服务器通过JNDI发出请求。由于攻击请求中的地址是攻击者控制的地址,因此其可以在请求响应中植入恶意可执行脚本,从而成功利用此漏洞在目标服务器上进行远程代码执行,进而攻击服务器。
托Apache Log4j 2的福,这次漏洞影响的范围非常之广(Apache Log4j 2一款非常流行的开源Java日志记录组件)
详细漏洞披露,可查看:
受影响组件可查看:
此外,Minecraft 是第一个但肯定不是最后一个受到影响的游戏。
最后,这不仅仅是Apache Log4j 2组件或者SQL语言的问题,而是只要有数据和代码未曾分离的地方,便都是注入攻击的可寻之地。
所以,不要因噎废食,弃之不用。攻击检测和漏洞修复的工作,有很多研究机构和安全公司都在进行。历史是螺旋上升的,安全也是,前进性、曲折性和周期性不可避免。
由于minecraft java版也使用了log4j,这个漏洞甚至可以用来在生存模式下作弊
实测在低版本java(java8u191之前的版本)下可以在minecraft聊天内使用jndi注入,因为minecraft会把聊天输入内容打在log里,用的就是log4j,因为命令方块也可以实现此注入,在有外部程序配合的情况下,可以实现完全看不出任何破绽的作弊
官方启动器+官方jre玩家不用进行任何操作,虽然正版的log4j版本是存在漏洞的版本,但是因为目前官方启动器用的jre是基于openjdk16的,openjdk16不能使用jndi注入
但是还在使用低版本java开服的服主,建议尽快升级log4j和java版本
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有