攻防世界新手入门十二题(MISC)

发布于 2020-04-06  146 次阅读


第一题 THIS_IS_FLAG

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

第二题 PDF

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

d

第三题

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

将得到的密文进行解密,我做的时候直接用base64解密解出来了,不知道为什么现在解密不出来了......

第四题

附件是个GIF表情包,仔细看表情包发现最后一帧有个黑乎乎的玩意儿,用我单身20年手速截图是这个

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

当时我人都傻了

第五题

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

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

找到用 notepad++ 打开都行

flag在这里

直接提交肯定失败,里面的内容用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)
#输出:-.-./---/-./--./.-./.-/-/..-/.-../.-/-/../---/-./.../--..--/..-./.-../.-/--./---.../.----/-./...-/.----/...../.----/-.../.-../...--/--/...--/...../...../....-/--./...--
C O N G R A T U L A T I O N S %u33 F L A G %u38 1 N V 1 5 1 B L 3 M 3 5 5 4 G 3

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个题做了好几天,真的到处都是知识盲点啊....好想有大佬带


学不动了,带带孩子吧。