QFNU_CTF迎新赛题解
这一套题目实际上是为新生准备的,我和对内另一位师哥在迎新的几天才知道这个题目的存在,也是正好我们没什么事情,就做了一下,这里将赛题的wp整理一下,同时考虑到纳新还在解题,不能给出完全的答案。
[TOC]
(一)Misc
1. 签到
这道题提供了半张二维码,考虑是否有图像隐写,如修改图像高度。推荐使用工具winhex,png头下面一行的前四位16进制数为宽,后四位为高。
这里附带常见的文件头
代码语言:javascript复制File ExtensionsHeader4
JPEG 0xFFD8FF
PNG 0x89504E470D0A1A0A
gif GIF8
TIFF 0x49492A00
TIFF 0x4D4D002A9
Bit BM
AOL ART 0x4A47040E0000003
AOL ART 0x4A47030E000000&
PC 0x0A0501080
emf 0x0100000058000000#
cdr CDR
dwg 0x41433130
psd 8BPS3
rtf rtf6
XML xml
html;htm;php;php3;php4;phtml;shtml type&
Email Delivery-date:
dbx 0xCFAD12FE
doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1
mdb;mda;mde;mdt Standard
wpd 0xFF575043
qdf 0xAC9EBD8F
qbb 0x4586000006004
sly.or.srt.or.slt;sly;srt;slt 0x53520100
lwp 0x576F726450726F
zip;jar 0x504B03041
zip 0x504B3030
rar Rar!
gz;tgz 0x1F8B085
bz2 BZh
arj 0x60EA
7z 7z集'&
mpg;mpeg 0x000001BA#
mpg;mpeg 0x000001B3
这个在后期我们会发的个人CTF工具包里就有,不需要都记住,但是zip,rar,png等几个少数常用的,还是希望能够看见就清楚是哪个。
2. 捉猫猫
这道题完全可以通过玩游戏得到,实际上应该是个简单的逆向,但是我是玩出来的(玩出来的内容并不完整,另一部分在哪呢?)所以有兴趣的可以去用逆向试一试
3. relax
这一道题是最经典的音频隐写题目,只需要使用audacity-win-2-1-2.exe
工具,和一点脑洞。
4. EasyPcap
这道题算是最简单的流量分析题目,里面只有HTML和tcp两个流,依次追踪一遍就能知道答案。
5. 曲阜师范大学
他已经给出了提示,感觉里面全是文字,我们可以用winhex看看这个题,这里需要用到第一题常用文件头的知识。然后还需要一个formost工具,工具已经提供了。后续还有一步密码破解,试试究竟是找出密码还是怎么做吧?
(二)web
关于web在这里我其实想吐槽一句,这个真是是给21级新生做的吗?居然考了sql注入和php反序列化。
1.Easy_Web
如题easy web,很多靶场都会有这一种类型的题目,是最经典的送分题。
2.Findit
这一道题,较上一道题难度有所提升,flag被分成了两块,试着找出来吧(说实话我一开始以为那部分缺的一半是自己猜的呢),注意在找到前半部分的flag之后不要尝试去补全句子,这样是得不到flag的。
(三)Crypto
1. 签到
这道题实际上就是base64,关于base系列的密码有一整个系列,如base32,base64,base96等。
cWZudXtodWFuX3lpbmdfbGFpX2Rhb19xdV95dWFuX2RhX2ppYV90aW5nfQ==
2.栅栏密码
这个真就是栅栏密码,这两个题都属于是古典密码,类似的还有很多,这类密码最重要的
qn{nls_ss_a}fuegihi_onn
3. emoji密码
一个用颜表情做的密码,这个密码在之前我也没见过,这种就是考察查找利用知识对能力和快速学习的能力。
4. BrainFUCK
BrainFUCK正好是一种密码的方式,不过这道题更多了一些小心思。
5.RSA
这道题也是我硕抱怨的另一个点,这道题是RSA加密算法,解决的话需要会编写脚本的能力,和对RSA密码的了解,在这里提供一个公钥分析的网址,通过这里可以提取n和e,
cmd 进入 yafu 的解压目录,输入 yafu-x64 factor(需要分解的大数) 遇到因数位数过长:新建文件 p.txt,内容写上 n 的值,最后面要换行 yafu-x64 “factor(@)” -batchfile p.txt
这是题库wp里提供的解题思路,不过这一道题完全可以使用在线的解题工具分解n得到指数p和q,这是解题工具。在通过编写脚本完成解题。
代码语言:javascript复制import hashlib
import base64
import gmpy2
import rsa
p = 55801219744752013328353829126338788731389
q = 1306404104626383868633664968881427933
e = 65537
n = 72898942517702846572619158917269560125985151716076557250750365689783898488937
d = int(gmpy2.invert(e,(q-1)*(p-1)))
key = rsa.PrivateKey(n,e,d,p,q)
with open("flag.enc","r") as f:
f = f.read()
a=base64.b64decode(f)
print(rsa.decrypt(a,key))
(四)Reverse
reverse的题目至少第一二道很简单,都可以看看,这里就不写解题过程了。