首页 > 技术文章 > Tomcat漏洞复现

Shepherd-boy 2020-09-30 15:13 原文

一、任意文件上传

该漏洞主要是通过PUT请求写入shell,一般Tomcat默认是不能用PUT请求写入文件的,只用但网站有需要时,管理员才会开启。所以要复现此漏洞首先需要将readonly设置为false,readonly默认为true,只读所以不能写入文件。

虚拟机中安装Tomcat,找到配置文件conf下的web.xml,在109行加入

<init-param>
            <param-name>readonly</param-name>
            <param-value>false</param-value>
</init-param>

使用bp抓包,修改请求动词为OPTIONS,并附加写入内容查看反汇信息如下:

配置前:

 配置后:

 

 可以观察到修改后,多了PUT和DELETE动词。环境搭建成功

使用上面方法查看真实网站是否可以PUT,如果可以则尝试上传shell

漏洞利用

一般是不容许直接写入jsp的,先尝试写入其它文件类型,成功后尝试绕过,写入shell。

 

 

201则为成功上传,但在Tomcat下只能执行jsp叫脚本,所以需要上传jsp的shell,但一般系统是不会让你直接上传shell,就需要各种方法去绕过Tomcat的检测,一般方法有:%20   \     .     \.    等绕过。

成功上传后使用工具连接:

 二、暴力破解登录账号密码

 

使用bp抓取Manager App的包,发送到爆破模块,选中Authorization: Basic,密码账号是使用base64加密的(user:password):

在配置端口设置此密码的三个组成部分:‘user:pass’

 

 设置加密方式为base64加密

 

 

点击start开始爆破。

三、后台war包getshell

 

使用条件:有Tomcat的登录账号密码

由于在Tomcatwar包会被当做jsp来解析,所以我们可以将jsp马打包为war包然后上传。

制作木马war包:在Java/jdk/bin目录下放入shell.jsp然后执行cmdjar cvf shell.war shell.jsp。会生成shell.war。注意使用管理员权限运行cmd

之后上传war

 

 

 

 

成功上传并解析jsp,之后就可以愉快的连接了。

推荐阅读