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/gcbaseURL/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}
这次比赛应该算战队的第一步吧,以后慢慢加油啦,赋一张图纪念一下