
浙江省首届网络安全大赛题解
2018年浙江首届网络安全大赛题解。我们队都是野路子小白帽,抱着玩一玩的心态参赛,运气好拿了个一等奖(第六名)。
决赛
1-1 知法懂法
在输入框提交数字,可以看到返回相应的网络法,同时URL的get请求中提交了两个字段id和submit。输入一些SQL注入语句可判断存在SQL注入点。
URL丢到SQLMap跑一下,注入成功,数据库成功脱库。
|
脱库后可以查到8个数据表,其中1个表存着七章网络法标题,另外7个表存着相应的七章安全法内容。
写脚本提交了5位数内的数字,都没任何返回值。因此判断flag可能不存在数据库中,而是写死在PHP中。
折腾了好久未果。最后仔细读了下题目,发现题目说,找到不是网络安全法的内容,内容!然后认真阅读了一次记录中的安全法,发现有一条讲的是未成年人保护法,提交这段内容,得到flag。
小结:用工具无脑注入即可脱库,之后的提交内容考验脑洞和细心。
1-2 回味童年
不管题目,先得玩一把俄罗斯方块,不能辜负出题人写了这么多代码。就是被工作人员围观玩游戏有点小尴尬。
将jar解压之后,用idea打开,先全文搜索一下zjctf之类的标识,发现并没有直接藏在里面。
查看目录,发现有一个HttpRequest.class文件,说明需要发送请求给后台才能获得flag。
因为HttpRequest.class文件里的函数是sendGet和sendPost,所以全文检索这两个方法,发现TetrisGame$ResultPanel.class文件中有一个sendGet。其代码如下:
|
发现发送的格式是url?时间戳&分数的base64编码。
根据var4一路回溯,找到url来自config.properties文件,打开一看,就是目标url了。
然后复制HttpRequrst,class中的代码,写脚本来按格式发送过去,就可以得到flag。
代码如下:
|
2-1 圆圈圈圆
- 用binwalk对下载的1.PNG进行分析,发现其中隐藏了一些文件。
|
- 用foremost提取到如下文件:
zip(00002888.zip) rar(00000943.rar) png(00000000.png) ole(00001886.ole) jpg(00001899.jpg)
|
打开rar文件,发现压缩包内包含了paper2.png图片,尝试解压,但需要密码无法解压。
用WinHex打开jpg文件,发现文件头包含”photoshop cs5”字样,尝试用photoshop打开该文件,寻找隐藏信息,未果。
用WinHex打开ole文件,发现十六进制内包含”microsoft office”等字样。同时用foremost提取到一些xml文件,初步判断是office的主题文件。
将ole文件后缀改为.doc得到word文件,发现可以打开,且存在ctf比赛介绍等内容。
用word自带的文本检查工具分析,发现存在作者信息和隐藏文字,在设置出开启隐藏文字选项。在文本末尾发现疑似flag,flag{This_i5_n0t_f1ag}。提交后发现flag不正确,从内容也可推测出不是真正的flag。
flag
将flag{This_i5_n0t_f1ag}作为密钥用于解压之前的rar压缩包,发现可以解开,得到paper.png文件。
用NotePad打开paper.png,搜索”zj”字段,搜索得到真正的flag。
zjflag
小结:jpg文件的photoshop信息有误导之嫌,一直把注意力放在这儿。之后无意间发现word有隐藏文字这个功能,才得到假flag。套路有点多。
4-1 小猪佩奇
用binwalk和foremost提取file.png文件,得到png和zip文件。
解压zip文件,得到一段peppa.mp3的音频和一张新的png图片。
再次对新的png图片进行提取,得到一堆文件,包含xml等,通过分析得出可能是office文件。
在其中的media文件夹中发现一张二维码图片,燃鹅,现场莫得带手机,扫不出二维码,难受。
qrcode-ss
- 最后,突然想到神器ss内有扫描二维码功能,扫描二维码得password:APIG。
qrcode-password
用goldwave打开之前的peppa.mp3音频文件,发现音频前0.3s的左声道有一段波形,大约可以猜测音频隐写了内容。燃鹅,没有准备音频隐写工具,几乎放弃。
到了中午,现场放出了一些常用工具,其中发现了mp3-stago工具。
下载工具,参考README.md说明,用之前解开的”APIG”密钥很顺利地对音频解密,得到flag。
小结:又是一道隐写题,难度不大。这题考的是工具,什么都没准备唉。还好现场放出了工具,顺利解开。
3-1 似曾相识(未解完)
小恐龙和预赛套路一样,post一个时间值,网页返回一张png图片。
得到png图片后,再将页面上的另外3张png下载,得到看似一样的四张png。
初步判断后发现,图片的大小有差异。用WinHex打开后,发现编码也有细微差异。
用compare比较两张图片,发现左半边有像素差异。同时发现下载的png图片文件名疑似md5加密。(红点标出部分)
compare
由于赛场禁网无法在线查询md5密码,且为准备图片xor运算工具,所以未解出。
回来后将文件名丢到在线md5解密,得到密码为65594。
md5
用stegsolve.jar工具对两张图片xor运算的到一张新的bmp图片。
用WinHex打开bmp图,发现大多数像素点十六进制为00(黑),有少部分为0A(灰)。将00表示为0,01表示为1,得到二进制串。
小结:工具没准备好,知道怎么做,却做不出,唉。
总结
本来就是抱着玩玩的心态参加了决赛,做了一上午0解,排在了四十多名有点难受。想着赶快做出个一题拿个三等奖就睡觉了。然后中午吃完盒饭,官方放出了一些工具的GitLab,用着工具一口气解出三题,瞬间爬到第四名,美滋滋。对于业余人士,拿到这个成绩还是很开心了,拿了奖牌回去继续苟前端。
yo
year
- 本文作者:zhaoo
- 本文链接:https://www.izhaoo.com/2018/11/05/zjctf-wirteup/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!
