环境搭建参考第一个链接,springboot启动文件如下,不同的启类,将Application.class修改一下就可以了,直接debug。注意:默认版本是2.0.3版本,修改成低版本,看一下mvn下载的jar包版本



漏洞利用:

第一次请求:



第二次请求:



注意的点:

需要用PATCH方法,而且请求格式为JSON。根据RFC 6902,发送JSON文档结构需要注意以下两点:

1、请求头为Content-Type: application/json-patch+json

2、需要参数op、路径path,其中op所支持的方法很多,如test,add,replace等,path参数则必须使用斜杠分割

下断调试一下,跟入applyPatch



跟入getPatchOperations



跟入convert函数,来到这里,path是传入的EL表达式







命令执行的地方



string转bytes[]脚本

public class Test
{
public static void main(String[] args)
{
//Original String
String string = "calc";
//Convert to byte[]
byte[] bytes = string.getBytes();
int i;
for (i=0;i<bytes.length;i++)
{
if (i==0)
{
System.out.print("[");
}
System.out.print(bytes[i]+",");
if (i==bytes.length-1)
{
System.out.print("]");
}
}
}
}

参考链接:https://www.cnblogs.com/co10rway/p/9380441.html

https://github.com/spring-guides/gs-accessing-data-rest.git

https://github.com/vulhub/vulhub/tree/master/spring/CVE-2017-8046

CVE-2017-8046(Spring Data Rest RCE)的更多相关文章

  1. FlushMode属性与transaction(spring注入的事务)

    一.参见hibernate的api http://tool.oschina.net/apidocs/apidoc?api=hibernate-3.6.10 http://tool.oschina.ne ...

  2. 初始化IoC容器(Spring源码阅读)

    初始化IoC容器(Spring源码阅读) 我们到底能走多远系列(31) 扯淡: 有个问题一直想问:各位你们的工资剩下来会怎么处理?已婚的,我知道工资永远都是不够的.未婚的你们,你们是怎么分配工资的? ...

  3. Tensorflow1.4 高级接口使用(estimator, data, keras, layers)

    TensorFlow 高级接口使用简介(estimator, keras, data, experiment) TensorFlow 1.4正式添加了keras和data作为其核心代码(从contri ...

  4. Authentication(Spring Security 认证笔记)

    这篇文章是对Spring Security的Authentication模块进行一个初步的概念了解,知道它是如何进行用户认证的 考虑一个大家比较熟悉的标准认证过程: 1.用户使用username和pa ...

  5. spring 缓存(spring自带Cache)(入门)源码解读

    spring自带的缓存类有两个基础类:Cache(org.springframework.cache.Cache)类,CacheManager(org.springframework.cache.Ca ...

  6. Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)

    什么是动态定时任务:是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定).      这样总不能修改配置文件每定制个定时任务就增加一个trigger吧,即便允许客户 ...

  7. Bean实例化(Spring源码阅读)-我们到底能走多远系列(33)

    我们到底能走多远系列(33) 扯淡: 各位:    命运就算颠沛流离   命运就算曲折离奇   命运就算恐吓着你做人没趣味   别流泪 心酸 更不应舍弃   ... 主题: Spring源码阅读还在继 ...

  8. SSM框架+Plupload实现断点续传(Spring+SpringMVC+MyBatis+Plupload)

    关于Plupload的介绍,相信它的官网http://www.plupload.com/已经给得很详细了.Plupload的上传原理简单点说,就是将用户选中的文件(可多个)分隔成一个个小块,依次向服务 ...

  9. JMeter脚本参数化和断言设置( CSV Data Set Config )

    用Badboy录制了Jmeter的脚本,用Jmeter打开后形成了原始的脚本.但是在实际应用中,为了增强脚本的多样性,就要使脚本参数化.这里我以登录为例,参数化用户账号与用户密码.  图1 :原始脚本 ...

随机推荐

  1. [android] 切换按钮-自定义控件

    准备两张图片,按钮背景,上面的小开关 创建一个类MyToggleBtn,继承View 实现三个构造方法,传递上下文, 实现构造方法,传递Context对象,在java代码中实例化时主要使用这个 实现构 ...

  2. 转载-iOS SDK开发

    最近帮兄弟公司的做支付业务sdk,积累了 sdk 封装的经验!下面我会从零开始把我的 sdk 封装和调试经历分享给大家,希望能给看到这篇文章的人有所帮助! 本文我会从以下几个方面来讲述: Framew ...

  3. Java基础部分回顾(为自己)

    最近,学到集合框架.感觉有些蒙圈儿.知道这一块很重要很重要,不敢疏忽.自学遇到的拦路虎,想着是不是前面的基础知道还没有夯实,对一些概念没有真正的理解到位呢?!所以,停下来.开始找一些视频,做一下回顾. ...

  4. Fibonacci(矩阵)

    Fibonacci Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u   Descrip ...

  5. HDU2157(SummerTrainingDay05-F dp)

    How many ways?? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  6. H5添加禁止缩放功能

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scal ...

  7. python内置函数每日一学 -- all()

    all(iterable) 官方文档解释: Return True if all elements of the iterable are true (or if the iterable is em ...

  8. python学习之老男孩python全栈第九期_day004知识点总结

    1. 列表list: 列表转换成字符串: s = 'kidd' s1 = '_'.join(s) # 用_连接 字符串转换成列表: split() range(头,尾,步长): [0,1,2,3,4, ...

  9. 退役前的最后的做题记录upd:2019.04.04

    考试考到自闭,每天被吊打. 还有几天可能就要AFO了呢... Luogu3602:Koishi Loves Segments 从左向右,每次删除右端点最大的即可. [HEOI2014]南园满地堆轻絮 ...

  10. 使用JNDI+连接池

    配置context.xml,在META-INF下新建context.xml,内容如下 <?xml version="1.0" encoding="UTF-8&quo ...