2020 第三届江西省高校网络安全技能大赛 线上赛
MISC
jump
拉进winhex打开,发现是 gif 文件头:

修改文件名后缀为 .gif ,用StegSlove打开进行逐帧查看:

tree
正常查看图片,将其放大多倍后发现有大量的异常斑点:

猜测为flag字样,用StegSlove打开后在 rad 7 通道下验证猜想:

非预期解:
经在各种光通道下瞪大眼睛,识别出字符:CMISCCTF{co ut_tree}
之后凭借大开的脑洞以及题目名称,在一神器的辅助下解得此题:

标准解:
from PIL import Image img = Image.open('enc.png') w = img.width h = img.height img_obj = Image.new("RGB",(w//16,h//16)) for x in range(w//16): for y in range(h//16): (r,g,b)=img.getpixel((x*16,y*16)) img_obj.putpixel((x,y),(r,g,b)) img_obj.save('ok.png')

reverse
babyre
一个.EXE 的可执行文件,还是 .NET 的:

用dnspy打开,直接扒出flag:

FLAG : CMISCCTF{Hello_CTF_Player_this_is_singin2}
crackme
一个ELF的文件,直接往IDA拖,像main函数瞄:


关键在函数sub_73A,从 &V3开始与 传入的v4进行逐字节异或,只有正确的v4能得到flag,v4的有效值为 0 -- 255。
EXP:
signed int i; char psp[32]; char pw[32] = { 0x2E,0x20,0x24,0x3E,0x2e,0x2e,0x39,0x2B, 0x16,0x09,0x02,0x32,0x14,0x02,0x18,0x32, 0x0f,0x18,0x1f,0x1d,0x32,0x0c,0x03,0x09, 0x32,0x1e,0x02,0x01,0x1b,0x08,0x10 }; for (int a1 = 0; a1 < 256; a1++) { for (i = 0; i <= 30; ++i) psp[i] = a1 ^ pw[i]; if (psp[0] == 'C' && psp[1] == 'M' && psp[2] == 'I' && psp[3] == 'S' && psp[4] == 'C' && psp[5] == 'C' && psp[6] == 'T' && psp[7] == 'F' && psp[8] == '{') { printf(" a1 = %d ", a1); putchar(10); printf("%s", psp); getchar(); return 0; } }

FLAG : CMISCCTF{do_you_burp_and_solve}
浙公网安备 33010602011771号