呜呜呜赛后我和队友才出俩flag,可惜了这201名。就差亿点点就进线下了QwQ

2020网鼎杯签到记

MISC

签到

Description

Weclome~!

Analyze

登上环境,答题,各个战队的图标,答完题后console或抓包即可得到flag。

Solve

image-20200510181950511

flag

flag{daa5e194d9cbf58833ff3f7a76caa36f}

虚幻2

Description

18年虚幻被打的很惨,2年后虚幻卷土重来。

附件下载 提取码:(b5kt) 备用下载

1. 汉信码 2. 图片要转转 3. 暴力修补

Analyze

开始是一个file文件,看头易得是png

file

然后stegsolve后分离RGB三个轨道的值,再旋转下得到

G

B

r

然后经过许久的尝试(包括excel手撸等等操作后)得到思路为逐列提取,于是脚本一把梭,得到图片

from PIL import Image
# import itertools
p = ['G','B','R']
# p1 = Image.open('file.png')
R_pixels = []
G_pixels = []
B_pixels = []
for i in range(3):
    if i == 0:
        p1 = Image.open(p[i]+'.png').convert('L')
        a,b = p1.size
        for x in range(a):
            if x < 1:
                continue
            pixel = []
            for y in range(b):
                if y < 2 or y > 33:
                    continue
                pp = p1.getpixel((x,y))
                pixel.append(pp)
            else:
                G_pixels.append(pixel)
    elif i == 1:
        p1 = Image.open(p[i] + '.png').convert('L')
        a, b = p1.size
        for x in range(a):
            if x < 1 or x > 10:
                continue
            pixel = []
            for y in range(b):
                if y < 2 or y > 33:
                    continue
                pp = p1.getpixel((x, y))
                pixel.append(pp)
            else:
                B_pixels.append(pixel)
    else:
        p1 = Image.open(p[i] + '.png').convert('L')
        a, b = p1.size
        for x in range(a):
            if x < 2:
                continue
            pixel = []
            for y in range(b):
                if y < 2 or y > 33:
                    continue
                pp = p1.getpixel((x, y))
                pixel.append(pp)
            else:
                R_pixels.append(pixel)
b = Image.new('L',(10,10),255)
w = Image.new('L',(10,10),0)
n_p = Image.new('L',(310,310),0)
for i in range(11):
    if i != 10:
        for j in range(len(G_pixels[i])):
            if G_pixels[i][j] == 0:
                n_p.paste(w,(i*30,j*10))
            elif G_pixels[i][j]  == 255:
                n_p.paste(b,(i*30,j*10))
        for j in range(len(B_pixels[i])):
            if B_pixels[i][j]  == 0:
                n_p.paste(w,(i*30+10,j*10))
            elif B_pixels[i][j]  == 255:
                n_p.paste(b,(i*30+10,j*10))
        for j in range(len(R_pixels[i])):
            if R_pixels[i][j]  == 0:
                n_p.paste(w,(i*30+20,j*10))
            elif R_pixels[i][j]  == 255:
                n_p.paste(b,(i*30+20,j*10))
    else:
        for j in range(len(G_pixels[i])):
            if G_pixels[i][j]  == 0:
                n_p.paste(w,(i*30,j*10))
            elif G_pixels[i][j]  == 255:
                n_p.paste(b,(i*30,j*10))

n_p.save('res.png')

res

然后旋转左下定位点再镜像得到

res (https://i.loli.net/2020/05/10/Tw5hu6y24ks8NDe.png)

然后这步操作比赛结束了想到了。。。。就是随机放个色块然后马赛克,强行误码让他自修复。得到

Cache_-e77a6e11b0e9bd4.

flag

flag{eed70c7d-e530-49ba-ad45-80fdb7872e0a}

Crypto

boom

Description

Boom there have a game.

附件下载 提取码:(5w89) 备用下载

Analyze

易得,答题解答就行

1.image-20200510184028991

en5oy

2.image-20200510184101039

image-20200510184440933

3.image-20200510184536103

image-20200510184622903

得到flagimage-20200510184709114

flag

flag{en5oy_746831_89127561}

you raise me up

Description

you raise me up.

附件下载 提取码:(c6eh) 备用下载

Analyze

sage离散对数求解算e

m = 391190709124527428959489662565274039318305952172936859403855079581402770986890308469084735451207885386318986881041563704825943945069343345307381099559075
c = 6665851394203214245856789450723658632520816791621796775909766895233000234023642878786025644953797995373211308485605397024123180085924117610802485972584499
n = 2 ** 512
m = Mod(m,n)
c = Mod(c,n)
discrete_log(c,m)

flag

flag{5f95ca93-1594-762d-ed0b-a9139692cb4a}