专栏名称: 稻草人安全团队
致力于为学习安全的有志之士提供学习与交流的综合平台。定期分享内部小组关于红队攻防实战、内网渗透、CTF比赛、代码审计、逆向、iot安全、移动安全、APT攻防、应急响应等优质技术干货。期待您的关注与加入。
目录
相关文章推荐
今天看啥  ›  专栏  ›  稻草人安全团队

帆软报表反序列化黑名单绕过分析

稻草人安全团队  · 公众号  ·  · 2024-08-26 18:50

文章预览

前言 之前看到的有触发toString方法的新链子,爆了有几个月了,刚好能够用来绕过帆软报表的黑名单,下面对分析的记录做个简单的分享。 HashTable链 `javax.swing.UIDefaults.TextAndMnemonicHashMap`类 是继承自`HashMap`, 可以看到`key`参数能够触发`toString`, 而只要从`HashMap`中的get方法取出的值为`null`就能进入到if: 在`java.util.AbstractMap#equals`方法中,当遍历到`value`为null,触发m的get方法: 既然说是`HashTable`触发的链子,我们就找到其`readObject`方法,发现其最终进入到`java.util.Hashtable#reconstitutionPut`方法,通过`e.key.equals`可以触发: 具体调用栈: at javax.swing.UIDefaults$TextAndMnemonicHashMap.get(UIDefaults.java:1251) at java.util.AbstractMap.equals(AbstractMap.java:492) at java.util.Hashtable.reconstitutionPut(Hashtable.java:1266) at java.util.Hashtable.readObject(Hashtable.java:1218) 这里TextAndMnemonicHashMap能调用到`AbstractM ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览