第二届“金盾杯”题目总结与复现

前言

Web手,再次玩起了杂项。因为是省赛,所以题目除Web题外,并不太难(当然Web听说也不难,只不过对于我这个Web小菜鸡来说有点难)。上午ak了MISC,下午差一道题没有ak Crypto。然后就被Web第一题100分的题卡死,没去做下面的Web题,以为下边200分、300分的比100分的更难。比赛结束后,听说100分的第一道题做出来的人最少,emmmmm,我直接针不戳!好了先总结一下吧:

MISC

MISC1:注意数字

考点:文件分离+伪加密+多层Base64编码+仿射密码和脑洞
下载题目压缩包并解压。对“此图没有提示.jpg”文件,使用foremost进行文件分离,得到一个zip压缩包
解压发现需要密码,使用winhex打开,发现是伪加密,于是将504B0304 后的3、4位,将504B0102后的5、6位的0900改为0000,即可破解伪加密
解压得到1.txt文件,1.txt文件内容是Base64编码的。进行若干次Base64解码后,得到
在这里插入图片描述
猜测接下来,需要对yqjb{lha-drwohjw-ekf}进行仿射密码解密。由“飞流直下三千尺,疑是银河落九天”,想到key1(a)为3,key2(b)为9。解密得到flag
在这里插入图片描述

MISC2:小火龙冲啊

考点:winhex末尾隐藏信息
下载题目压缩包并解压。使用解压工具winRAR打开“小火龙.jpg”,发现加密的flag.txt文件
使用winhex打开“小火龙.jpg”,在末尾发现解压密码:111111
解压,输入解压密码,解压成功得到flag.txt文件,打开得到flag

MISC3:五瓶药水

考点:CRC32碰撞+Base64解码并排序+Base64转图片+winhex末尾隐藏flag
下载压缩包题目文件,并解压,得到
发现橙色.zip、红色.zip、黄色.zip、绿色.zip、青色.zip的文件大小都很小,里边压缩文件大小都是4字节
在这里插入图片描述
于是想到4字节的CRC32碰撞,将这五个压缩包里的压缩文件的crc32,填到下列脚本的对应位置,进行碰撞

import binascii
import string
dic=string.printable

crc1 = 0xe5c67f46
crc2 = 0x555fa1a2
crc3 = 0x6e957e45
crc4 = 0x76d6a31a
crc5 = 0x2b042586

def crc32_4(crc):
    for i in dic :
        for j in dic:
            for p in dic:
                for q in dic:
                        s=i+j+p+q
                        if crc == (binascii.crc32(s.encode("ascii"))):
                            print (s)
                            return 1
crc32_4(crc1)
crc32_4(crc2)
crc32_4(crc3)
crc32_4(crc4)
crc32_4(crc5)

在这里插入图片描述
将这五部分分别进行Base64解码:
aW9u解码得ion
cG90解码得pot
Z2Vu解码得gen
YjEy解码得b12
Mw==解码得3
按照一定顺序进行拼接得到flag.zip压缩包的解压密码:potiongenb123
打开解压得到的flag.txt文件,得到
在这里插入图片描述
很明显,Base64转图片,得到一个jpg图片,使用winhex打开jpg 图片,在最后边发现flag
在这里插入图片描述

MISC4:我和十六有个约定

考点:winhex末尾隐藏信息+16进制转字符串+Base64转图片+16进制每行2位一组逆序保存为图片+二维码拼图
下载题目压缩包文件并解压,得到ababab.jpg和flag.zip文件。使用winhex打开ababab.jpg文件,在最后边发现
keyis7034735377307244,将7034735377307244进行16进制转字符串得到p4sSw0rD
p4sSw0rD即是flag.zip的解压密码,解压得到flag.txt和splice.txt文件。
将splice.txt的文件内容进行Base64转图片,得到二维码标志位
在这里插入图片描述
下载下来。
打开flag.txt,发现每一行是jpg图片的16进制的逆序
在这里插入图片描述
于是,写个脚本进行转换

input = open('flag.txt', 'r')
input_all = input.readlines()
for lins in input_all:
    ss = lins[::-1]
    num=ss.split(' ')
    for i in num:
        xx=i[::-1]
        print(xx,end=' ')
input.close()

在这里插入图片描述
成功转换,在winhex里新建文件,将这些16进制粘贴到winhex里,并保存。打开发现是缺少二维码标志位的二维码主体部分
在这里插入图片描述
将刚才得到的二维码标志位和这个主体部分进行拼图
在这里插入图片描述
使用支付宝进行二维码扫描,得到flag

MISC5:One_piece

考点:压缩包暴力破解+社会主义核心价值观加密+BrainFuck编码+维吉尼亚密码+解读c语言代码得到密钥
下载题目压缩包文件并解压,发现需要密码,由文件名四位数字,想到对压缩包口令进行暴力破解,得到压缩包解压密码:9156
解压得到secret.c和路飞海贼团的烦恼.txt文件,打开路飞海贼团的烦恼.txt文件,发现一串密文:
在这里插入图片描述
很明显是社会主义核心价值观加密,解密得
在这里插入图片描述
解密结果,很明显是BrainFuck编码,解码得glbe{pnf_njedc_js_ufjs_kmvrocz!}
解码结果感觉是维吉尼亚密码,但没有密钥。打开secret .c文件
,根据代码意思得到密钥的四个字符的ASCII码值:
在这里插入图片描述
ASCII码值转字符串得到密钥:\aby
于是对glbe{pnf_njedc_js_ufjs_kmvrocz!}进行维吉尼亚解密,得到flag

Crypto

Crypto1:Base

考点:Base64转图片+Base92解码
下载题目压缩包文件并解压,打开base文件
于是Base64转图片,得到png图片,打开发现是二维码
扫描得到
F#S<YReBy{f.WwU{CSv^e^'n*D进行Base92解码,得到flag

Crypto2:不一样的凯撒*

考点:脑洞+找规律+凯撒变形+十进制转字符
题目密文是bhag{asb_zsz_vtsz_aszw},将字符串转ASCII得:

[98,104,97,103,123,97,115,98,95,122,115,122,95,118,116,115,122,95,97,115,122,119,125]

bh对应的ASCII为98 104,如果变成fl则变成102 108,为偶数
ag对应的ASCII为97 103,不变,为奇数
所以,偶数+4,奇数不变,得到:

[102,108,97,103,123,97,115,102,95,126,115,126,95,122,120,115,126,95,97,115,126,119,125]

转字符串,很明显有问题,126已经超出可见字符范围了,便减去26,转字符串得到flag

[102,108,97,103,123,97,115,102,95,100,115,100,95,122,120,115,100,95,97,115,100,119,125]
转字符串得到flag:flag{asf_dsd_zxsd_asdw}

Crypto3:今天是个好日子

考点:unicode编码+Base64编码+脑洞+AES解密
下载题目压缩包文件并解压,得到一个二维码,扫描结果,很明显是unicode编码,解码得
在这里插入图片描述
解码结果是Base64编码,解码得:
U2FsdGVkX1+ehXdDuA3EC7Tcr5bOHNhzbEPOz55Gdy5StZU7RDzY7Hfr5M1JoNtz
然后再进行Base64解码发现
在这里插入图片描述
加盐了,于是需要找到密钥,然后进行下面这些解密的其中一个
在这里插入图片描述
由题目“今天是个好日子”想到今天(比赛那天)的日期20201220,即密钥
然后进行AES解密,得到flag
在这里插入图片描述

Web

Web1:web_checkin

考点:命令执行+绕过黑名单
打开题目,发现题目源码:

绕过ls关键字过滤可使用dir命令绕过(但是没想到被坑了,dir没有列出当前目录下的文件,必须用dir .,我无语了emmmm。。。。)
绕过空格过滤可使用%09绕过
绕过文件读取过滤可使用cut读取文件sed读取文件file -f读取文件
于是就产生了三种解:
dir .列出当前目录下的文件,得到flag文件F14g_1s_h4rehaha.php

cut%09-c%091-10000%09F14g_1s_h4rehaha.php
sed%09-n%092p%09F14g_1s_h4rehaha.php
file%09-f%09F14g_1s_h4rehaha.php

参考博客:河南省第二届金盾杯CTF web官方wp


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 qwzf1024@qq.com

×

喜欢就点赞,疼爱就打赏