2025年网络与分布式系统创新设计大赛校赛 WP

2025年网络与分布式系统创新设计大赛校赛 WP

image-20250330113124210

***杂项***我一题没写出来,我是飞舞


[MISC]vivo50

image-20250330113235721

不让爆破密码了,打开压缩包,发现里面有一个叫vivome5000.zip的压缩包,字节还算小,CRC爆破还是bkcrack?

1.先用bkcrack看下,是否支持爆破

1
bkcrack.exe -L crackme.zip

发现加密方式是ZipCrypto且是Store,OK满足爆破条件

image-20250330113554074

但是工具要求必须已知12个字节(且其中8个字节必须是连续的)才能爆破,只有压缩包的头肯定是不够12个字节进行爆破的,所以进行拼接爆破

但是用什么拼接呢?提示给说文本压缩成ZIP时,并没有特地去设置ZIP的文件名,翻译成人话就是,藏有flag的txt文件就是vivome5000.txt,那么就知道很多字节了,开干

2.先自己创建一个vivo5000.txt,打成压缩包,扔进010看看

image-20250330181223363

那么我们现在就有以下字节是知道的:压缩包的头504B0304,vivome5000.txt这个文件对应字节。

3.进行爆破:

1
bkcrack.exe -C crackme.zip -c vivome5000.zip -x 0 504B0304 -x 30 7669766F6D653530302E747874

4.获得key:a10ec7c4 a0ee4e0c c1d15d11

5.使用命令输出新压缩包

1
bkcrack.exe -C crackme.zip -c vivome5000.zip -k a10ec7c4 a0ee4e0c c1d15d11 -U out.zip 123

6.再解压,获得flag

image-20250330191854865

[MISC]签到

image-20250330183643607

哈哈哈,我是真想不到全勾选Green 没签上到,我还是滚吧

1.下载下来图片,图片长的跟老电视没信号一样的花屏

2.有点丑,扔进随波逐流,随波逐流告诉了我Green通道有一个Mia的神秘话语

image-20250330183858429

3.解密一下

image-20250330184112349

哈,我还真以为这是Flag,在那拼flag

4.获得一条没用的信息,最后一行有白色的条子,像LSB隐写,用Stegsolve,把绿色通道全勾选了

image-20250330184351411

获得类似flag样子的东西:PGS{0703 n80s-o008-4oq7-9 91q-8o74po9237r4 }

5.拉出来解密

image-20250330184654493

6.拼接成NUCTF{0703a80f-b008-4bd7-991d-8b74cb9237e4}

[MISC]送分

image-20250330185053406

没送到我手里,差评 当时没给任何提示,在那干爆破没爆破出来直接跳过了(差评x2

1.密码只有小写字母和数字,爆破

2.你妹的,密码是NU1315,设这密码还不如直接告诉我们得了,爆破跑了7分半

image-20250330191708083

3.提示说零一,扔010里看看,发现有一大块0和1

image-20250330190140651

这个题是有原型的,但是没翻笔记忘记做过类似的了

image-20250330190611897

4.全选,总共360000个字节,那就是600x600的画布大小

image-20250330190758112

5.使用脚本,处理成每600个字符一行

image-20250330191126677

6.使用脚本画图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import numpy as np
from PIL import Image

def txt_to_qrcode(input_file, output_file):
with open(input_file, 'r') as f:
content = f.read().strip()

n = int(len(content)**0.5)
if n*n != len(content):
raise ValueError("文件内容长度不是完全平方数")

data = np.array([int(c) for c in content]).reshape((n, n))

data = 255 * (1 - data)

img = Image.fromarray(data.astype(np.uint8), 'L') # 'L'表示灰度图像

img.save(output_file)
print(f"二维码已保存为 {output_file}")

获得二维码

7.获得flag

image-20250330191607882

[WEB]Mia的秘密

image-20250330191941380

说起这个就来气,GitHacker是个傻逼工具,不要用,司马玩意开发的image-20250330192235797

1.进入靶场,要输入密码

image-20250330192026215

2.可能是弱密码?用bp爆破一下,跑了个13w的弱密码的字典,没跑出来

3.其他又没什么信息了,先扫一下网站吧

image-20250330192204056

哦豁,git泄露

说起这个就来气,GitHacker是个傻逼工具,不要用,司马玩意开发的image-20250330192235797

4.用Git-dumper抓取泄露

image-20250330192507565

5.git log看下历史提交

image-20250330192842299

6.挨个恢复一下,git reset –hard [commit],当恢复到第二个commit的时候,readme里出现了密码

image-20250330193022212

7.输入密码,获得flag

image-20250330193100600

[WEB]神秘留言板

image-20250330193134544

1.进入靶场

image-20250330193146121

hello,后面跟的挺像name,那就试试name参数

image-20250330193223358

还真是

2.判断是否存在SSTI漏洞

image-20250330193249168

OK,SSTI

3.梭哈梭哈(x)

3.看下哪些类可用

image-20250330193409614

image-20250330193605591

找到有<class ‘os._wrap_close’>可用

4.找利用类方法,发现有popen

image-20250330193743696

5.尝试获取flag,发现被拦截

image-20250330193824349

6.使用另一种利用方式,获得flag

1
/?name={{config.__class__.__init__.__globals__['os'].popen('cat /flag').read()}} 

image-20250330193925006

[WEB]ezunserialize

image-20250330194053979

啊对对对

<主播暂时没学到反序列化,本题暂时搁置,等我学完了再复现,再补上wp,完结撒花>