背景
前天下午临时收到通知,要昨天安排打一场观安组织的ISG比赛,一次都没打过CTF的我属实有点慌...因为技术能力范围有限,开启任务后分配了web和misc给我,每题都过了一遍之后感觉都很懵...就直接先上了这个500分的大题(毕竟领导交代过,做不出来没事)。
webshell is very danger
进入访问地址,啥都没有。
查看源码后发现注释file.php?f=index.php,访问之后发现还是上面这个页面,那一看这个url就肯定试一下文件读取了。尝试一下发现还真的可以,读了/etc/passwd
看了一遍之后好像也读不了其他文件了,目前来看这个页面除了一个hacker账户有点可疑,其他的好像也没什么了。
既然感觉没啥做的了,我们尝试利用伪协议读取一下file.php源码,
代码语言:javascript复制php://filter/read=convert.base64-encode/resource=file.php
代码语言:javascript复制
将源码base64解码后,提示我们看bash_history这个文件夹
这个时候突然想到了开头查看passwd文件的hacker用户,那么我们直接查看hacker的历史记录
根据经验猜解到在/home/hacker/.bash_history
发现webshell文件,可以看到被改名为server.php
根据bash_history提供的线索,访问server.php果然是一个后门文件
提示要密码,尝试输了几次弱口令后又懵逼了,没办法,只能再次尝试伪协议看看了
似乎又发现了线索,用在线的运行php代码的网站执行该文件
成功发现密码,终于搞定,登进server.php后,脸黑了==
说好的flag呢???????没办法,继续找呗,写了格式化的脚本,要不然眼都看瞎了,多次尝试后发现在/tmp目录下
把log文件下载下来,删选内容发现upload文件夹,尝试访问一波
发现上传点,伪协议访问发现可以上传php,直接传了冰蝎的码
访问IP/shell.php,获得flag(忘了截图了)
flag{fMsugzWqFAjSdDL8mKonk5VGJ2lTBX4t}
赛后总结
因为一上来就做的这个500分大题,题目又比较绕,还要写脚本格式化日志,一来二去花了有1个多小时在这道题上,然后后续乱七八糟的东搞一下西搞一下,不过好在做出来了,逆向的500分没人解出来,这道web的500分就占了我们小队近1/3的分了,最后竟然还整了个小组第一,属实没想到....。
总结:CTF果然是需要靠脑洞的==