近日,FasterXML Jackson-databind远程代码执行漏洞的利用方式公开。此漏洞利用FasterXML Jackson-databind的logback-core类建立JDBC连接,加载插入恶意代码的sql文件,获取服务器权限,实现远程代码执行漏洞的利用。
FasterXML Jackson-databind介绍
FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。jackson-databind可以将Java对象转换成json对象,同样也可以将json转换成Java对象。
漏洞分析
此漏洞调用FasterXML Jackson-databind的logback-core类建立JDBC连接,JDBC是一个可以执行sql语句的API。通过JDBC,服务器可以加载远端的sql文件并执行其中的代码。攻击者利用此方式,加载远端的恶意sql文件,在目标服务器执行文件中的恶意代码,获取目标服务器的权限。
漏洞复现
搭建 jackson-databind-2.9.8环境。下载jackson-databind-2.9.8、jackson-annotations-2.9.8、jackson-core-2.9.8、logback-core-1.3.0-alpha4、h2-1.4.199放在classpath文件夹中,使用ruby脚本加载jar包,传入构造的payload,加载远端HTTP服务器上的sql文件,实现远程代码执行攻击。攻击效果如下图。PHP大马
执行ruby脚本,传入参数:
HTTP服务器上产生日志。
生成exploit文件
影响范围
目前受影响FasterXML Jackson-databind的版本:
FasterXML jackson-databind 2.0 – 2.9.9.1
修复建议
升级到FasterXML jackson-databind最新版本,下载链接:https://github.com/FasterXML/jackson-databind/。