apache streampark 后台 RCE

提交给apache 官方被驳回了,官方认为这不是一个漏洞

apache/incubator-streampark: Make stream processing easier! Easy-to-use streaming application development framework and operation platform. (github.com)

66077-k8mx24731eh.png

streampark在项目管理处能够clone远程项目,并且会进行编译,我们能够指定构建项目的参数

82130-o8i3k6nfjg.png

在项目编译时会调用project.getMavenArgs()方法获取到完整的maven编译命令

98671-3gwm0wiuzbb.png

getMavenArgs()中对传入的参数(buildArgs)进行了过滤,在过滤完成后拼接参数到完整的maven命令中

90912-usghaqyvchc.png

getIllegalArgs()方法中先采用正则表达式判断是否包含``或$() ,这两种方式都可以在参数中直接执行命令,再往下过滤了";", "|", "&", ">" 这些分隔符,可以说绕过的方式几乎已经没了。

81209-ho499y93zi.png

我们这里从其他的角度来思考这个点,首先该功能点目的为编译clone的项目,并且编译参数可控,由此可以想到通过mvn package来rce,具体详细内容如下

利用项目配置文件进行 RCE - IDE Trust Project 功能探究 - rmb122's notebook

38254-kf8ojy3deb7.png

添加新评论

文章状态:已收录~