[toc]
前言
书接上回,第一天的预赛如果大家还算理智和克制,那第二天的决赛现场的选手可能就跟打了鸡血一样,比赛分了企业组、学生组和政府组,每个组在最后半小时都是风云变幻,赛后甚至还有人打探到某组的第一名是花钱买的,去年相同级别的一个比赛花了2w,今年花了1w(难道市场化了?所以价格下跌了。。。)
企业组的前几名,复杂的附件题目哐哐秒答案,最简单的web和pwn题没人做,就不要太明显。
虽说各级别CTF比赛的PY交易从来都不罕见,但是如此混乱的赛场纪律真是第一次见。
比赛的时候有一道复杂一点的misc,到比赛结束后和队友交流的时候才发现,其实比赛的时候已经做到最后一步了,盲水印隐写已经拿到结果了,但是还是因为疏于练习,竟然连文件路径都搞错了,愣是没找到输出的盲水印结果。。。如果有这道题目的分数,可能起码还能混到一个奖金。
比赛结束后在赛场附近闯了个红灯,痛失6分+200大洋,没拿到奖金还搭进去200块,真悲摧。
btw:WP还没写完,写博客的时候,用hexo直接创建了post,deploy了之后就发布了,暂时不知道如何将layout为post的文章改为draft,就先这样吧,反正写起来也快。
Misc
hide flag
一道简单的word隐写,打开word全选字符串之后修改颜色,发现了密码
那么肯定需要什么东西去解压了,docx本身也是一种压缩文件,将其解压之后,在word-media中发现了flag.zip
构造字典爆破压缩密码,可以考虑直接用Advanced Archive Password Recovery,当时作为一名优雅且喜欢CLI的CTFer,图形化显然不够优雅。
首先用crunch构造字典
1 | crunch 11 11 -t S1cRe7..%%% -o password.txt |
同样优雅的用7z配合for循环爆破
1 | for i in `cat password.txt`;do 7z x -p$i -aoa flag.zip >/dev/null 2>&1 && echo "Password found:$i"&&break;done |
手速不手速的不要紧,要紧的是优雅。
布达拉宫
binwalk分离出两张图片和一个加密压缩包,盲水印之后拿到压缩包密码,解压后统计词频拿到flag,空了再更新详细步骤吧。
Web
qiandao
略
ezjava
比赛的时候没时间看,赛后主办方也没给wp或者docker文件,所以没法继续做。
Crypto
EasyRSA
Revere
confidential
upx脱壳之后,可以在ida pro中看到flag的base64编码的字符串,解码之后拿到flag,不脱壳的话,base64编码不全,解出来的flag少一个字母和}
ezmaze
反编译后,查看字符串,发现了迷宫
根据段数据内容,找到了对应的函数
根据函数内容,确定了迷宫的入口出口,以及操作的方式,wsad分别代表上下左右,所以输出的路径就是代表上下左右方向的字符串
确定了迷宫的情况之后,只需要找到路径就可以了。
1 | from hashlib import md5 |
PWN
NoTeLanDer_v2
很简单的栈溢出,空了补充详细步骤。