第一题 THIS_IS_FLAG
题目就是答案: flag{th1s_!s_a_d4m0_4la9}


第二题 PDF
附件是个pdf,下载之后一张图片,提取图中文字就是flag


第三题
附件是个word文档,文档内容是一堆佛经,打开与佛说禅,复制文档,在前面添加一个佛曰:


将得到的密文进行解密,我做的时候直接用base64解密解出来了,不知道为什么现在解密不出来了......
第四题
附件是个GIF表情包,仔细看表情包发现最后一帧有个黑乎乎的玩意儿,用我单身20年手速截图是这个


看着像是一个二维码,但是扫不出来,因为少了定位符,因为现在我没有ps软件,于是用电脑自带的图片编辑器手画三个角




第五题


附件是个jar文件,看起来像个小游戏,叫你坚持60s,这种东西真要去玩这辈子都没法过关了。直接修改后缀名为.zip,打开之后里面一堆文件,其实都看都不用看。直接下面打开这个文件


发现主要文件就是cn.bjsxt.plane.PlaneGameFrame文件,


找到用 notepad++ 打开都行


直接提交肯定失败,里面的内容用base64解密一下就行了。解密后:DajiDali_JinwanChiji
第六题
文件下载解压之后是一堆黑白图片,盲猜二进制,白为0黑为1:
01100110011011000110000101100111011110110100011001111110101010011100101111101100111011010010100010001111101




第七题
没经验,这题看了大佬们的解答。两个一位,16进制转10进制,然后减去128再转成字符即可
string = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
flag = ''
for i in range(0,len(string), 2):
s = "0x" + string[i] + string[i+1]
flag += chr(int(s, 16) - 128)
print(flag)
第八题
我是在Linux服务器先下载附件,然后挂载到一个目录下,找一下标志,然后base64解密一下。
# mkdir ctf
# mount f1fc23f5c743425d9e0073887c846d23 ctf
# cd ctf
# find *|grep flag


第九题
没有经验的我做起来好难受。。。。
附件下载之后是个pdf文件,全部复制到一个Word文档之后最后一队看不懂的东西,不过那一串ABAB一看就有故事,开始以为是二进制,结果是我想多了。。。
尝试直接notepad++打开pdf,里面发现一串很奇怪的英文Subject(<| tr AB .- |>)/Creator(LaTeX /o/)/Producer(find mr.morse text)/Keywords(Could this be the flag? : Tm9wZSAsIG5vdCBoZXJlIDspCg==)




后面flag那一串是迷惑人的,base64解密之后是Nope,not here;)。所以这不是flag。根据前面的提示,要找到一串 morse text (莫斯电码),前面还有个提示 AB .- ,这让我联想到之前一串很长的AB串。对应起来A='.' , B='-'。翻译过来就是了
string = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
flag = ''
for i in range(0,len(string), 2):
s = "0x" + string[i] + string[i+1]
flag += chr(int(s, 16) - 128)
print(int(s, 16))
print(flag)
#输出:-.-./---/-./--./.-./.-/-/..-/.-../.-/-/../---/-./.../--..--/..-./.-../.-/--./---.../.----/-./...-/.----/...../.----/-.../.-../...--/--/...--/...../...../....-/--./...--


fla{nv151bl3m3554g3}
第十题
下载的rar里面只有一个flag.txt,用winhex打开rar件,作以下修改,然后打开,再把secret.png丢到winhex




发现文件头是gif,于是修改文件后缀,然后分离图片,丢到stegsolve找到两个二维码




然后合并,补上定位符(这里还捣鼓了了半天PS,我太难了)


flag{yanji4n_bu_we1shi}
第十一题
目前这题花了最长时间,从头学了一下base64隐写,最后参考一下大佬的代码才搞明白,菜啊...我用的360解压,所以提交之后才知道前面还有伪加密
import base64
def deStego(stegoFile):
b64table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
with open(stegoFile,'r') as stegoText:
message = ""
for line in stegoText:
try:
text = line[line.index("=") - 1:-1]
message += "".join([ bin( 0 if i == '=' else b64table.find(i))[2:].zfill(6) for i in text])[6-2*text.count('='):6]
except:
pass
return "".join([chr(int(message[i:i+8],2)) for i in range(0,len(message),8)])
print(deStego("stego.txt"))
第十二题
下载附件是各流量包,用foremost分离一下发现一个需要密码的压缩包,里面就是flag.txt,所以找到这个密码就行了。


将流量包丢到wireshark看一下,眼睛看花了之后终于找到想要的


追踪TCP流


jpg格式是以FFD8FF开头,以FFD9结尾 的。所以复制中间所有内容, 生成一个jpg文件。winhex操作不来,我使用的python
import codecs
jpg_str = '复制的字符串'
flag_str = ''
for i in range(0,len(jpg_str),2):
flag_str += r"\x{}".format(jpg_str[i:i+2])
with open('6666.jpg','wb') as f:
f.write(codecs.escape_decode(flag_str)[0])


图中字符即为密码,打开flag.txt里面就是flag。
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
刚刚开始玩CTF,12个题做了好几天,真的到处都是知识盲点啊....好想有大佬带
叨叨几句... NOTHING