今天第一次参加CTF比赛,对于我这个菜鸡来说,简直毫无比赛体验😢😢,遭受了五个小时的吊打。
没错,就是这么残忍。直接把我0封了。
后来在大佬的反复提示帮助之下,勉强解出第一题《Ezfileinclude》,下面记录一下自己的挨打历程。
打开靶机,页面显示的是一张图片
查看源码,没太多有用的信息,唯一比较特殊的话是这找图片的url:**image.php?t=1595643210&f=Z3F5LmpwZw==**
看到f=后面那一串东西,一下子想到了base64编码,尝试解一波码,解出来gqy.jpg
,先留着,说不定有用。
试了一下image.php,回显:you miss some parameters(你漏掉了一些参数)奥,可能后面的t,f也得跟着,复制粘贴上去,再回车,页面回显:what’s your time ?
作为一个萌新,我一度怀疑这是不是什么CTF黑话,特意百度了一波 CTF what’s your time? 好吧,并不是,想了想,可能是要给time这个参数赋值,盲猜可能是URL中的t参数,试着把t参数删掉,回车,回显提醒漏掉参数,给t赋值为time试试?还是问我时间!😩但是时间一直是变化的呀,,,怎么搞呢?关键在于那个t后面的一串数字是啥,我又去百度了一波CTF中的数字编码,没啥结果。卡住。
求助大佬(emmm,应该不算犯规吧)大佬说那一串数字是unix时间戳,百度了一波,相当于那一串数字其实表示的是一个时间
还是那个问题,该怎么传当前时间???当前时间一直在变化的呀。
此处贴出大佬的方法:
python脚本,,,好吧,我是靠.py
这个后缀猜的😰
菜鸡的我再次流下了伤心的类水,咱也不会写python脚本呀(一打开我满是灰尘的pycharm还出错了,大家还是支持正版吧😂)
不会脚本,只能靠手速了,按照大佬的指导,先转换一个10秒后的时间戳。等到时候再发(妙啊)
一顿操作猛如虎,以为flag呼之欲出了,结果出来的是一堆乱码,淦!
搞了半天居然没用。。。
后来大佬提示我去看看攻防世界 warmup 这道题的wp,目录穿越,flag在根目录,去找了一波wp学习了一下,感觉两个题的确蛮像的,不过那个题源码有提示,这个题看不了源码。我模仿那道题的wp试了试 ?file=index.php?/../../../../../../flag
不行,又试了试它的各种变形体,失败。我感觉应该没啥问题呀(⬅菜鸡的蜜汁自信)
去问大佬这个姿势错在哪,大佬说不是file=而是f=,我照做了,吧上面那个payload里的file改成了f,还是不行呀。
再次寻求help,大佬让我看看时间对不对,一惊,还得用时间? (不是说没卵用的吗,,手动狗头,,)
原来每次都必须t=当前时间戳&f=xxx(这边就解释了为啥是f而不是file了,我还是后来才醒悟) 好吧好吧,先去转换一个20秒后的时间戳,打开手机读秒,我感觉到了胜利的曙光😁
一回车,妈耶,还是不行呀,奥,那个f=xxx,xxx应该像他原来url里那样用base64编一下码的,害,这脑子。去在线编码网站把index.php?/../../../../../../flag
base64编码一下,编码完发现它居然后面没有两个==, 我不会又被在线编码网站给制裁了吧?将信将疑地将它复制过去,又开始手动传时间(卑微.jpg),居然成功得到了flag!
一波三折,跌宕起伏,柳暗花明。
参赛体验:
1.有机会一定学习一下python脚本,手速传时间实在是卑微
2.多刷题!多刷题!多刷题!多涨涨见识才能触类旁通
第一次参赛,纪念一下吧😂