做tctf时,由于以为RR师傅要放0day,所以就去审karaf的源码去了没有好好看karaf的文档。。。
在 org.apache.karaf.config.core.impl.ConfigMBeanImpl, 存在一个目录穿越写文件的漏洞:
1 |
|
可以看到我们能够通过..
来穿越到任意目录。为了复现题目环境这里我们安装karaf并安装jolokia的bundle:
然后只要发送这样一个包
1 | POST /jolokia HTTP/1.1 |
可以看到/tmp目录已经写入了文件。
为了实现RCE,karaf会自动加载deploy目录下的bundle包,调用其Activator的start函数,因此我们只需要构造一个恶意的osgi bundle包在start函数中写入反弹shell的操作即可。
这里使用的bundle包源码放到了https://github.com/imagemlt/osgi-bundle-backdoor中,mvn install
后再mvn package
即可在target目录下找到生成的jar包。