唯品会信息安全专场招聘会,深圳见!

💡 原文中文,约7500字,阅读约需18分钟。
📝

内容提要

本文介绍了利用fastjson反序列化漏洞执行远程代码的攻击方法,攻击者构造特殊的json字符串绕过白名单检测,成功执行任意命令。攻击步骤包括上传并编译命令执行荷载、启动临时的http服务、生成payload、启动RMI服务器并指定加载远程类、本地开启监听、修改提交模式和Content-Type为application/json,发送payload。攻击成功后,攻击者可以执行任意命令。

🎯

关键要点

  • fastjson是阿里巴巴的开源JSON解析库,支持Java Bean的序列化和反序列化。
  • 攻击者可以利用fastjson反序列化漏洞执行远程代码,构造特殊的JSON字符串绕过白名单检测。
  • 攻击步骤包括上传并编译命令执行荷载、启动临时HTTP服务、生成payload、启动RMI服务器并指定加载远程类。
  • fastjson的autoType功能允许攻击者指定攻击类库,通过构造JSON字符串进行反序列化攻击。
  • JNDI和RMI机制被利用来执行远程命令,攻击者可以通过构造恶意的URL来加载攻击者指定的类。
  • JdbcRowSetImpl类被用于反序列化攻击,通过设置dataSourceName和autoCommit属性触发远程命令执行。
  • 在1.2.24版本后,fastjson增加了反序列化白名单,但在1.2.47版本之前,攻击者仍可绕过检测执行命令。
  • 攻击者可以构造反弹Shell的payload,通过HTTP请求发送到目标服务,执行任意命令。
➡️

继续阅读