文章预览
前言 之前看到的有触发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
………………………………