漏洞背景
参考资源:
- https://www.exploit-db.com/exploits/46453
- http://blog.orange.tw/2019/02/abusing-meta-programming-for-unauthenticated-rce.html
本文聚焦Orange Tsai发现的Jenkins预认证漏洞利用技术。
受影响版本
- Jenkins < 2.137(支持预认证攻击)
- 插件漏洞范围:
- Pipeline: Declarative Plugin ≤ 1.3.4
- Pipeline: Groovy Plugin ≤ 2.61
- Script Security Plugin ≤ 1.49(测试中发现1.50版本同样存在漏洞)
漏洞利用
ExploitDB提供的利用脚本可自动编译JAR文件,并托管供漏洞服务器下载执行。
实战演示:
|
|
后续版本绕过
Jenkins 2.138后预认证漏洞被修复,但若攻击者持有read权限令牌且插件未更新,仍可通过添加认证Cookie至利用脚本,实现认证环境下的漏洞利用。
技术细节:
漏洞利用链依赖Groovy元编程缺陷,通过恶意JAR触发服务端反序列化,最终实现远程代码执行。攻击者需构造特定HTTP请求至/securityRealm/user/[username]/descriptorByName/
端点,利用插件解析逻辑缺陷注入恶意代码。