TCTF 2019 Ghost Pepper writeup

  ctf

0x00前言

周末之中,参加TCTF,只做出来一道web题目,借此记录一下被虐过程

0x01 Weclome

关注公众号,签到,1分....

0x02 Ghost Pepper

打开网页,显示需要登陆,但是同时看到一个提示,the site say karaf,遂用karf,karf登陆进去,进去之后显示只有404错误,用dirsearch扫一遍也无果,因此将目标点聚集在jetty上面

因为之前在做题目的时候看到出题人的一条twitter说这次比赛会有0-day的出现,因此就往这方面找咯

既然是有0-day,那就先要弄清楚软件的功能咯,读文档.ing...经过几个小时的肝文档...终于在jolokia这个路径下发现了蛛丝马迹,在这个页面中显示

于是继续查找jolokia官方文档,在一篇文章中看到基于jolokia的信息泄露,进行尝试,输入url

http://111.186.63.207:31337/jolokia/read/Catalina:type=Manager,context=*,host=111.186.63.207

但是出现报错信息

遂进行一些其他的尝试无果后,在它文档中查找API的文档,同时注意到当时网站给到一个信息karaf,Karaf是apache旗下的一个开源项目.Karaf同时也是一个基于OSGi的运行环境,Karaf提供了一个轻量级的OSGi容器,可以用于部署各种组件,应用程序。因此下载一个本地容器进行测验,官网上下载karaf,进行安装,看到如下界面即安装成功

karaf文档中看到webconsole有如下参考

You can use the WebConsole to:

  • manage Apache Karaf features

  • manage OSGi bundles

  • manage the instances

  • manage the confgurations

  • manage the log service

遂运行命令feature:install webconsole安装webconsole,安装完成之后用karaf karaf在localhost:8181/system/console里面进入控制台

发现gogo的控制台能够运行命令,bingo,那么只需要通过jolokia打开webconsole的如下控制台应该就可以读到flag

于是乎,继续肝文档,发现jolokia的基本命令为下

exec 响应

http://localhost:8080/jolokia/exec/java.lang:type=Memory/gc

baseURL/exec/<Mbean>/<method>/argument1,argument2,argument3

Key Description Example
type exec  
mbean MBean's ObjectName java.lang:type=Threading
operation The operation to execute, optionally with a signature as described above. dumpAllThreads
arguments An array of arguments for invoking this operation. [true,true]

你能通过exec来调用一个mbean参数重置API,因此构造payload

curl -s 'http://111.186.63.207:31337/jolokia/exec/org.apache.karaf:name=root,type=feature/installFeature(java.lang.String)/webconsole' | python -m json.tool

get flag

使用POST方法一样可以

flag{DOYOULOVEJOLOKIA?ILOVEITVERYMUCH}

 

这次比赛应该算战队的第一步吧,以后慢慢加油啦,赋一张图纪念一下