2023年SWPU NSS 秋季招新赛 (校外赛道) MISC复盘WP

发布时间 2023-10-28 23:01:16作者: Kicky_Mu

GIF Code

题目描述:

扫一扫即可获取Flag

给了一个含二维码的动图,分离一下得到九张二维码碎片,根据文件名数字按顺序组装,在线扫码即可

NSSCTF{3f0ac91b-3e0e-a7e2-7b2a-c67cfdc093fe}

相信他终将回来

题目描述:

我们的湾湾
hint1:base怎么就不能转成16进制呢

010查看,base64转图片

但是打不开,因为宽高有问题,修改下宽高

NSSCTF{Taiwan_will_eventually_return}

签到base你值得拥有

题目描述:

打不开?有听misc培训吗o.0
hint1:也许你可以32与64轮换着来

文件过大,但是我们熟悉的类型,base64,32反复解

exp:

f = open('code.txt').read()
import base64
while 1:
    try:
        f = base64.b32decode(f)
        print(f.decode()[:100])
    except:
        try:
            f = base64.b64decode(f)
            print(f.decode()[:100])
        except:
            print(f[:100])
            break
#NSSCTF{oi_you_konw_32and64!}

WD Code 

 题目描述:

最新最热的WD Code,怎么扫?

 

第一次见这种码,分析一段时间后发现是极坐标,需要转化成直角坐标

exp:

import cv2
img = cv2.imread('WD Code.png')
img = cv2.resize(img, (img.shape[1], img.shape[1]))
img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
d = img.shape[0]
flat = cv2.warpPolar(img, (d, d), (d//2, d//2), d//2, cv2.WARP_POLAR_LINEAR)
cv2.imshow('', flat)
cv2.waitKey()

出来后扫就完事了

还有一种做法。。。。用PS

选择滤镜——扭曲——极坐标——极坐标到直角坐标

直接扫即可

NSSCTF{1a8bb32f-7af8-b994-c5a6-9fa04b3e188c}

为何不避?

题目描述:

想要我的flag吗,想要的话可以全部给你,去找吧,我把我的flag放在门酱那儿了。
hint1:除了binwalk还有啥可以用呢?

kali分离出来一个RAR压缩包一个图片,但是RAR是坏的需要修复,直接可以用WINRAR修即可。

然后得到flag.txt

NSSCTF{y1n_w3i_6u_p@@@}

谁发的图片打不开啊

题目描述:

你这是什么表情

一张损坏的图片,但文件名有东西,提取出来解码

得到信息,看着像密码,根据题目描述“什么表情”想到base100,把文件放到cyber看一下:

得到表情,然后按上面密码解码就行

NSSCTF{you_kn0w_this_emoji}

咱们玩个游戏吧

题目描述:

七巧板玩过,八巧板玩过吗

给了八张二维码碎片图片,一样是拼接,两个一组,扫码得到

 %4e%53%53%43%54%46%7b%6d%6f%75%6e%74%61%69%6e%73%5f%61%6e%64%5f%73%65%61%73%5f%66%6f%72%5f%79%6f%75%7d

0和1还能做什么

题目描述:

1344*840
hint1:0为黑1为白,根据描述的1344*840转换成生活中黑白并存的东西

文件给出好多01,根据提示想到按坐标画二维码

exp

from PIL import Image
MAX1 = 1344
MAX2=840
pic = Image.new("RGB",(MAX1, MAX2))
str = "这里把数据放进来"
i = 0
for y in range (0,MAX2):
    for x in range (0,MAX1):
        if(str[i] == '1'):
            pic.putpixel([x,y],(0, 0, 0))
        else:
            pic.putpixel([x,y],(255,255,255))
        i = i+1
pic.show()
pic.save("flag.png")

NSSCTF{you_seem_to_same_as_always}

Welcome to osu!

 题目描述:

出题人私货时间!请注意查看附件的题目描述.pdf哦!
hint1:或者,了解一下.osu文件?https://osu.ppy.sh/wiki/zh/Client/File_formats/osu_(file_format)hint2:坐标绘制

根据附件pdf提示,要么玩游戏获取flag,要么找到flag。。。。

对手残党来说,还是找吧,手速慢的玩不了一点。。

法一:

如果是玩过osu!并且还编过谱,可能会猜到是Slider Art,其实直接打开编辑器,拖到最后一个物件,点一下,就看到flag了。

没错!就是这么简单!!!很神奇对吧!明明这个滑条这么多点,但是他就是不走,为什么呢?注意看文档的这个地方:

是的,滑条长度是参数,不是画了哪些点,滑条就一定要走完所有的点,如果长度不够,滑条是根本不会继续往下走的。

法二:

就算没有玩过osu!,再加上后面给的提示,分析一下.osu文件,你会发现有个坐标这种参数,以及在.osu文件,最后一大堆数据,很容易也可以产生联想

这一堆东西其实就是坐标点,简单写个脚本把这些点画出来,就能看到了。

import matplotlib.pyplot as plt

data_str = "280:128|-39:285|-39:285|-31:285|-31:285|-35:285|-35:285|-35:281|-35:281|-35:277|-35:277|-35:273|-35:273|-35:269|-35:269"  
# 这里只列出了部分数据,为了不刷屏,剩下的就自己复制罢

# 解析数据
points = [tuple(map(int, pair.split(':'))) for pair in data_str.split('|')]

x, y = zip(*points)

plt.figure(figsize=(10, 6))
plt.scatter(x, y, color='blue', marker='o')


plt.grid(True)
plt.tight_layout()

# 反转Y轴
plt.gca().invert_yaxis()
plt.show()

升天(未出)

题目描述:

魔法邮票嗑大了以至于我能看见她在唱什么
hint1:右声道存在SSTV