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}

 

posted @ 2020-09-01 21:56  批某人  阅读(495)  评论(0)    收藏  举报