开局一张图,内容全靠编
第一反应查看源代码
<pre id="line1"><img src="showimg.php?img=c2hpZWxkLmpwZw==" width="100%"/></pre>
明白了通过参数来访问文件,参数值特征为base64,也成功解码得到shield.jpg
目前手头没有已知可以看的文件,能够直接以http://web.jarvisoj.com:32768/访问说明可能存在index文件,showing.php表明了网站采用php架构,猜测文件名为index.php,将其base64编码后,构造出URL
http://web.jarvisoj.com:32768/showimg.php?img=aW5kZXgucGhw==
查看页面源代码,发现index.php的源码已经暴露,里面还require了shield.php,那我们再使用上面的方法,shield.php的源码也暴露了,得到flag所在位置:pctf.php,尝试故技重施直接得到flag,失败。发现shield.php中含有了类的结构,回到index.php,发现unserialize函数,而且根据代码逻辑,序列化字符串可以由函数传递,自己写一个PHP代码,运行,生成字符串payload
O:6:"Shield":1:{s:4:"file";s:8:"pctf.php";}
URL payload
http://web.jarvisoj.com:32768/?class=O:6:"Shield":1:{s:4:"file";s:8:"pctf.php";}
查看源代码,发现成功获取flag
PCTF{W3lcome_To_Shi3ld_secret_Ar3a}