漏洞详情

https://devco.re/blog/2019/01/16/hacking-Jenkins-part1-play-with-dynamic-routing/

https://devco.re/blog/2019/02/19/hacking-Jenkins-part2-abusing-meta-programming-for-unauthenticated-RCE/


环境搭建

因为docker部署的 Jenkins 会自行安装插件,这里可能会有一些插件版本上面的问题,所以我们的漏洞环境采用GitHub项目+docker进行搭建,GitHub地址:https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc.git。

下载到的项目有EXP和环境源码,我们主要用的是sample-vuln目录下的代码,这里可以直接运行他的run.sh进行docker的搭建,docker会自行下载需要的images。(PS:我的虚拟机下载images有点慢,所以我用VPS下载然后再导出导入)

这个环境跟Orange大佬的环境稍有不同,Orange大佬的环境采用的是Read-only Mode的权限模式,而这个环境用的是Authenticated Mode,同时还给了一个user1/user1的用户,就我们复现漏洞而言并没有什么关系。


漏洞复现

生成攻击JAR

然后 jar cvf poc-1.jar * 打包成jar文件,并部署到自己的VPS上面

让服务器下载恶意jar并执行payload

命令成功执行

其中有几点需要注意的地方:

  1. Payload中各个参数的意义:

    name:什么都可以

    root:你的VPS的地址

    group:恶意jar文件存放的路径,a.b即https://x.x.x.x/a/b目录

    module、version:恶意jar文件的名字,即module-version.jar

  2. 服务器会缓存访问到的jar文件,再次提交相同group的payload的时候,服务端不会再去访问我们的jar。

反弹shell

修改java代码,再次生成恶意jar文件并提交payload


作者水平有限,如有错误请指出Orz


Web 复现 Jenkins

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

GoogleCTF2018-beginners-js_safe_1
基于报错的盲注