Web: ezgame;我太喜欢billibili大学啦;签到;easy_upload
Pwn: welcomeUNCTF;石头剪刀布
Reverse:whereisyourkey;ezzzzre
Crypto: md5-1;dddd;caesar;single-table;md5-2;ezRSA
Misc: magic_word;找得到我吗;syslog
- single-table
这道题是古典密码,做了一点变形,table被倒过来了,所以移位和替换规则都要反着弄
不过最后的X要删除
- welcomeUNCTF
无壳,32位,上IDE
主函数中发现strcmp()函数,就是字符串对比,要对比的就是s和s2,其他就没什么要做的了。
新建靶机,上kali
改成.py文件,运行
Flag就出来了,不过要注意,pwn的题目都是动态的,我做了没立即提交,搞得我后面又做了一次。
- 剪刀石头布
查进制就不截图了,上ida
可以看懂出题人想玩游戏,有了ezgame的经验,还担心什么,上靶机玩
连上靶机之后可以看到游戏规则,0.rock,1.scissor,2.paper。并且采用回合制,试玩发现每一回合能赢的方式是固定的,输了就得从头来,由于不知道是多少回合结束,我玩到16回合就放弃了,回ida继续看代码。发现srand(0xAu),这不就是我大一写的随机数种子吗?这样就可以把每个回合的答案找到了。至于多少回合,我肯定先猜121。
至于为什么要先-1,再mod 3,自己找找规律写写代码就出来了。
接下来当然是再上靶机玩游戏,注意每次输入不要输错,粗心的就像我一样调整一下
游戏在100回合就结束了,想知道为什么的,可以再去看看代码
- MD5-1
就是一个md5在线爆破,就不写过程了。
- Caesar
其实就是古典密码凯撒密码
- ezzzzre
查壳
Upx -d 脱壳,上ide
主函数看懂这三句代码就够了,key是字符串,这里对字符做了运算,所以肯定转ASCLL值,不过还要先看key的内容是什么。
当然是HELLOCTF,接下来按照算法规则运算就行,得到key=KESSYAcG,这里就不写了
最后运行.exe文件,输入key就能得到flag。
- Syslog
题目提示好好看压缩包,然后发现解压flag.txt需要密码,所以如下图
看见密码格式就知道是base64编码,所以先解密,然后再解压flag.txt即得
- web的ezgame我就不说了,我看参赛人员都做出来了。
- 我太喜欢bilibili大学啦。
进去直接找flag就行,比syslog还简单,基本不用耗费精力
- web的签到
登录发现没有,先后尝试万能密码,抓包,sql语句和sqlmap,发现都没用,看来只有爆破了,直接单点爆破
一个一个点就行,flag就出来了:
flag{bfff6d206cbcd6ac0870a4f48c7c313b}
- easy_upload
上bp抓包,直接传图片马,马也显示在bp里面的,下面截图有马
上传成功,文件放在uplO4d里面,用蚁剑连接
连上之后找找就出来了。
- dddd
第一反应就是..-/-.小学就看过的摩斯密码?翻译一下
接下来对着表查flag就出来了。
- whereisyourkey
查壳无壳,32位
根据它的算法,for i-->10; oooo(v5[i])就是我们的flag
然后根据它的算法写一下就出来了,最后转Ascll:yesiamflag
- 你找的到我吗
解压题目文件是一个文档,改颜色有如上字体。接下来就是各种尝试misc压缩包技巧汇总:
将docx改成zip这个方式是对的,再次解压,发现明文
接下来就是找了,最终在一个页面发现:
flag就出来了。
- ezRSA
学了信安数论,不玩玩RSA?
题目给的代码如上,这应该是几道RSA中最简单的一道,这道题要用的模块libnum和算法都写明白了,和每个数据的计算方式都给出来了。
自己上python编译一下代码就行
里面有一个难点就是求phi_n,题目写了phi_n=p**4-p**3,而n=p**4,所以p为n开4次根号,带到算法里面运行,flag就出来了。其他几道RSA有点难,没整出来
- magic_word
这道题跟着题目提示来就行了,乱码+零宽隐写
所以就是一个工具问题,去乱码恢复网站
再去隐写网站
就出来了。
17.MD5-2
这道题目算是最折腾人的了
我在注释里已经把思路讲清楚了,接下来写算法
拿去md5爆破
找找规律,后面就不写了,缺位的前面补0,因为16进制,flag就出来了。
CTF3个月新手一枚,只会这么多了