实战中Java反序列化漏洞黑盒挖掘思路

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

本文探讨了Java反序列化漏洞的黑盒挖掘方法,重点分析了fastjson和shiro的反序列化漏洞。通过判断数据包格式、版本和利用链,分享了具体的攻击手段及绕过WAF的技巧,强调了技术信息的参考性质及使用时的谨慎。

🎯

关键要点

  • 本文探讨Java反序列化漏洞的黑盒挖掘方法,重点分析fastjson和shiro的反序列化漏洞。
  • 反序列化分为原生反序列化和组件反序列化,fastjson和shiro是常见的组件反序列化漏洞。
  • fastjson反序列化漏洞的判断主要依赖于数据包格式,若数据包为json格式,则可尝试攻击。
  • 通过删除请求数据包的'}'来判断是否使用了fastjson组件。
  • 如果fastjson版本在1.2.47以下,可以使用特定的通杀链进行攻击。
  • 若服务器无法出网,可以通过类的报错回显判断是否使用了fastjson。
  • shiro反序列化漏洞的攻击可以通过在Cookie中添加脏数据来绕过WAF。
  • 遇到有key无链的情况,shiro通常会有cb链,且可以尝试使用JRMP二次反序列化链。
  • 本文提供的技术信息仅供参考,读者应谨慎使用并遵守相关法律法规。
  • 技术内容可能不适用于所有情况,读者需自行判断信息的时效性。

延伸问答

Java反序列化漏洞是什么?

Java反序列化漏洞是指在反序列化过程中,攻击者可以利用不安全的反序列化操作执行恶意代码或获取敏感信息的安全漏洞。

如何判断fastjson是否存在反序列化漏洞?

可以通过检查数据包格式是否为json,并尝试删除请求数据包的'}',如果出现特定报错,则可以判断使用了fastjson组件。

shiro反序列化漏洞的攻击方式有哪些?

攻击方式包括在Cookie中添加脏数据绕过WAF,以及在请求中插入特定符号或参数来尝试爆破密钥。

如何绕过WAF进行反序列化攻击?

可以在请求数据包的Cookie中添加脏数据,或将数据包改为POST请求并添加脏数据,以绕过WAF的检测。

fastjson的版本如何影响反序列化漏洞的利用?

如果fastjson版本在1.2.47以下,可以使用特定的通杀链进行攻击,版本高于此则可能需要其他方法。

使用Java Chains工具有什么作用?

Java Chains工具可以生成反序列化利用链,帮助攻击者识别和利用反序列化漏洞。

➡️

继续阅读