jdk 在 1.8 之后对 AnnotationInvocationHandler 类进行了修复,而CommonsCollections5利用链则是寻找到了替代AnnotationInvocationHandler 的新的可以利用的类。
利用版本:
CommonsCollections 3.1 - 3.2.1
JDK 8u76之前
调用链:
Gadget chain:
ObjectInputStream.readObject()
BadAttributeValueExpException.readObject()
TiedMapEntry.toString()
LazyMap.get()
ChainedTransformer.transform()
ConstantTransformer.transform()
InvokerTransformer.transform()
Method.invoke()
Class.getMethod()
InvokerTransformer.transform()
Method.invoke()
Runtime.getRuntime()
InvokerTransformer.transform()
Method.invoke()
Runtime.exec()