唯品会信息安全专场招聘会,深圳见!
💡
原文中文,约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请求发送到目标服务,执行任意命令。
➡️