Fastjson 1.2.47 远程命令执行漏洞复现分析环境

news2024/11/17 18:22:28

Fastjson 1.2.47 远程命令执行漏洞

1、靶机环境安装

1.1、虚机机linux环境参数

1、操作系统:CentOS Linux release 7.4.1708 (Core)
2、IP:192.168.127.132

1.1、docker与docker compose安装

1.2、下载https://github.com/vulhub/vulhub/tree/master/fastjson/1.2.47-rce到本地临时路径

https://github.com/vulhub/vulhub/tree/master/fastjson/1.2.47-rce
[root@localhost docker]# pwd
/usr/local/src/docker
[root@localhost docker]# ls
docker-compose.yml
[root@localhost docker]# cat docker-compose.yml 
version: '2'
services:
 web:
   image: vulhub/fastjson:1.2.45
   ports:
    - "8090:8090"

1.3、启动靶机服务

  • 启动窗口实例服务

docker-compose up -d
  • 验证服务-docker查看

[root@localhost docker]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
vulhub/fastjson   1.2.45    9423bd2fcac7   4 years ago   326MB
[root@localhost docker]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED       STATUS       PORTS                                       NAMES
98803895b2de   vulhub/fastjson:1.2.45   "java -Dserver.addre…"   3 hours ago   Up 3 hours   0.0.0.0:8090->8090/tcp, :::8090->8090/tcp   docker-web-1
  • 验证服务-web访问

1、浏览器访问http://ip:8090
2、返回如下响应,说明服务启动正常

{
    "age": 25,
    "name": "Bob"
}

2、dnslog环境配置

2.1、在windows宿主机运行dnslog-window

2.2、解压附件的dnslog-windows.zip,查看config.yaml配置文件

HTTP:
  port: 8000
  #{"token":"用户对应子域名"}
  user: { "admin": "dnslog" }
  consoleDisable: false
Dns:
  domain: demo.com
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6baf6974b1064a7cb340402908f518ec.png#pic_center)

2.3、访问界面http://localhost:8000/

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b7ca6b0bebc147518089c89c4bc6325f.png#pic_center)

2.4、验证

在这里插入图片描述

在这里插入图片描述

  • 根据dnslog配置规则,ping 666.dnslog.demo.com域名

ping 666.dnslog.demo.com
  • 刷新web页面,查看dnslog记录,有记录说明环境正常

在这里插入图片描述

3、漏洞检测验证(dnslog方式)

3.1、配置靶机dns解析服务器,指向运行dnslog的宿主机192.168.127.1

echo 'nameserver 192.168.127.1'  > resolv.conf
  • 在靶机上ping验证,能看到记录则说明配置正常

ping 666.dnslog.demo.com

3.2、用postman或curl访问靶机

在这里插入图片描述

3.3、同样,在dnslog查看到记录说明靶机漏洞存在,利用成功

3.4、其它展开利用的方式常见rmi,ldap利用,具体可自行研究展开;

4、源码漏洞原因分析

4.1、跟踪验证过程具体参考如下文章

https://www.anquanke.com/post/id/181874

4.2、intelij idea环境调试fastjson环境配置

  • 打开idea,open附件的demoflow工程

在这里插入图片描述

  • 下断点,准备跟踪利用链

在这里插入图片描述

  • debug调试,断点捕获开始

在这里插入图片描述

  • 最后,同样可以在dnslog页面查看到访问的log记录;

5、附件下载

Fastjson-less1-2-47远程命令执行.rar (访问密码: 1150)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1567788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

moment.js 产出未知格式的时间,可能的原因

moment.js 产出未知格式的时间,可能的原因 有个问题困扰我好久了,在项目中使用格式化时间的时候会产出一些千奇百怪的格式,产出的文字我都不认识。 百思不得其解,终于今天在看代码的时候发现了这个问题。 它的表现是这样的&…

Redis中的复制功能(四)

复制的实现 步骤2:建立套接字连接 在SLAVEOF命令执行之后,从服务器将根据命令所设置的IP地址和端口,创建连向主服务器的套接字连接,如图所示。如果从服务器创建的套接字能成功连接(connect)到主服务器,那么从服务器将为这个套接…

第二十一章 RabbitMQ

一、RabbitMQ 介绍 在介绍 RabbitMQ 之前,我们先来看下面一个电商项目的场景: - 商品的原始数据保存在数据库中,增删改查都在数据库中完成。 - 搜索服务数据来源是索引库(Elasticsearch),如果数据库商品…

【Redis】Redis的使用

登录redis [roottest2 ~]# redis-cli 127.0.0.1:6379> 或[roottest2 ~]# redis-cli -h 192.168.67.12 -p 6379 192.168.67.12:6379> redis-benchmark 测试工具 redis-benchmark 是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能 基本的测试语…

稀疏矩阵的三元组表表示法及其转置

1. 什么是稀疏矩阵 稀疏矩阵是指矩阵中大多数元素为零的矩阵。 从直观上讲,当元素个数低于总元素的30%时,这样的矩阵被称为稀疏矩阵。 由于该种矩阵的特点,我们在存储这种矩阵时,如果直接采用二维数组,就会十分浪费…

环形链表问题(判环+寻找入环点)

文章目录 题目1.判断链表中是否有环1.1 思路分析(快慢指针)1.2 思考:为什么快指针每次走两步,慢指针每次走一步两者一定可以相遇?1.3 快指针一次走3步,走4步,...n步行吗? 题目2. 寻找…

一、企业级架构之LNMP

一、LNMP 概述 1、LNMP之间的关系: LNMP Linux Nginx MySQL PHP 2、配置LNMP服务器: (1) 克隆一台centos7虚拟机,修改 IP 地址 和 UUID 编号。 IP 为 10.1.1.10,UUID 修改后三位。 (2) 设置主机名称,绑定IP地…

机器学习周记(第三十二周:文献阅读-时空双通路框架)2024.3.25~2024.3.31

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文模型 1.3.1 Spatial Encoder(空间编码器) 1.3.2 Temporal Encoder(时间编码器) 2 相关代码 摘要 本周阅读了一篇运用GNN进行时间序列预测的论文。论文…

挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题

前言 大概故事是这样的,PostgreSQL数据库,表结构: create table t1(a varchar);然后使用标准的Java jdbc去插入数据,其基本代码如下: import java.sql.*; public class PgDoubleTest {public static void main(Stri…

渐进式图片解决前端在页面中使用大图,图片体积过大导致页面出现白屏现象

1、演示 可以看到,图片还在拼命加载的时候, 页面上就已经有内容了 2、什么渐进式图片 图片一开始是模糊的,然后逐渐的开始变的清晰。如果页面上有一些大图,如果直接扔给浏览器的话那么图片的传输时间就会比较长,用户就…

Java对象Object对象头-MarkWord分析-hashCode

代码主要通过打印对象的内存布局来观察对象头在不同状态下的变化,进而分析对象头在不同情况下的内存布局情况。 System.out.println(ClassLayout.parseInstance(o).toPrintable());:这一行代码通过使用开源库 openjdk.jol 的 ClassLayout 类来解析对象 o…

算法思想堪比哲学,你知多少否?

对算法思想 - 分治算法的理解 分治算法是一种将复杂问题划分为规模较小的子问题,并递归地解决这些子问题,最后将它们的解合并为原问题的解的算法思想。 它具有以下几个关键步骤:分解、解决和合并。 通过将大问题分解为小问题,每个…

数据结构—堆

什么是堆 堆是一种特殊的树形结构,其中每个节点都有一个值。堆可以分为两种类型:最大堆和最小堆。在最大堆中,每个节点的值都大于等于其子节点的值;而在最小堆中,每个节点的值都小于等于其子节点的值。这种特性使得堆…

Linux实验过程

答案截图获取,代写: https://laowangall.oss-cn-beijing.aliyuncs.com/studentall.pdf 基本任务: 1.Linux操作系统安装 2.vi文本编辑 3. Linux用户及文件管理命令 4. Linux权限管理命令 5. Linux网络服务 提高任务: 1、Li…

vue3+elementPlus:实现数字滚动效果(用于大屏可视化)

自行封装注册一个公共组件 案例一&#xff1a; //成功案例&#xff1a; //NumberScroll.vue /* 数字滚动特效组件 NumberScroll */<template><span class"number-scroll-grow"><spanref"numberScroll":data-time"time"class&qu…

intellij idea 使用git的 cherry pick 摘取其他分支的comment

cherry pick 摘取其他分支的comment 如果想把 feature_v1.0 分支的comment 摘到 feature_v1.0_new 分支上&#xff0c; 先切换到 feature_v1.0_new分支&#xff0c;这一步不能少了。然后点击 下面菜单栏的 git&#xff0c;点击Local Changes旁边的 Log&#xff0c;这时能看到…

【Java】打包:JAR、EAR、WAR

打包&#xff1a;JAR、EAR、WAR war 是一个 Web 模块&#xff0c;其中需要包括 WEB-INF&#xff0c;是可以直接运行的 WEB 模块。而 jar 一般只是包括一些 class 文件&#xff0c;在声明了 main_class 之后是可以用 java 命令运行的。 它们都是压缩的包&#xff0c;拿 Tomcat …

SpringBoot登录校验(四)过滤器Filter

JWT令牌生成后&#xff0c;客户端发的请求头中会带有JWT令牌&#xff0c;服务端需要校验每个请求的令牌&#xff0c;如果在每个controller方法中添加校验模块&#xff0c;则十分复杂且冗余&#xff0c;所以引入统一拦截模块&#xff0c;将请求拦截下来并做校验&#xff0c;这块…

配置Pod使用PersistentVolume作为存储,PV类型为 hostPath

准备开始 在节点主机上创建一个 /mnt/data 目录&#xff1a; mkdir -p /mnt/data创建一个index.html文件 echo Hello from Kubernetes storage > /mnt/data/index.html创建PV 创建一个 hostPath 类型的 PersistentVolume。 Kubernetes 支持用于在单节点集群上开发和测试的…

第19次修改了可删除可持久保存的前端html备忘录:换了一个特别的倒计时时钟

第19次修改了可删除可持久保存的前端html备忘录:换了一个特别的倒计时时钟 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><met…