0x00 概括
这是我第一次参加CTF比赛。逆向小白,隐写小白,但是做出了所有的隐写题。最擅长Web方向(和编程),而Web题做得不多。Web方向的知识还是不牢固,技巧不够熟练,实践经验不足。
我按照顺序题目分类写写writeup吧。
0x01 MISC 隐写题
做出的
MISC2 150分
先从MISC2开始吧(并没有MISC1)。文件是一段流量的抓包,使用wireshark提取文件,其中有一个请求flag.zip的HTTP请求,提取flag.zip,解压得到一个ce.txt文件。大致如下图所示
第一次打CTF,不太熟悉套路,看了好久才发现可能是RGB值。行数为98457=887*111,可能就是长宽了。用Python PIL写了个脚本,图片还原如下
MISC3 100分
MISC3是一个图片,利用Google搜图搜到原图,对比发现最后增加了一串字符,OZRGW4L3OVVUG22TL53HEZDVPJ2HKY2DKZIVQVTVOZ5HKY3LOJ3HIWSEKVBFIR2ZKNVXMY3LOR3H2===,看到等号应该想到base64,看到三个等号应该想到不是base64。实际上是base32编码,解码得到vbkq{ukCkS_vrduztucCVQXVuvzuckrvtZDUBTGYSkvcktv}。感觉前四个应该是flag,初步怀疑是凯撒密码,后来发现ascii码的奇偶不同,位移方向不同,写个脚本得到flag。
MISC4 100分
fuck.html,长这样
很显然这个是jsfuck,直接运行即可查看结果,如下图
弹出结果为brianfuck加密,解密即可得到flag
0x02 Web
做出的
Web 100
这是一道文件包含方面的题目,Tips1是include.php。请求include.php,提示Tips: the parameter is file! :)查看html源码,发现upload.php,这是一道上传文件包含的题目,如果是纯上传就不会有include.php,所以上传应该限制比较死。首先利用php://filter/convert.base64-encode/resource=include拿到include.php的源码,这里有个坑,文件名不能是include.php,这不科学,但是看到源码后就知道了。base64 decode得到源码
过滤了http等远程协议,不能使用php://input,不能利用%00和多个./截断。还会在文件名后面加.php后缀,而显然无法上传php文件。在这里,有两种文件可以突破限制,一种是利用zip://伪协议,另一种是phar://伪协议。zip不行,phar可以,即可拿到shell,在当前目录下有一个文件,swpu_wbe2_tips.txt,内含flag和下一道题的提示。
0x03 完整Writeup
http://bobao.360.cn/ctf/detail/173.html
http://blog.l1n3.net/writeup/swpu_ctf_2016_writeup/