[TOC]

web

easy_flask

考点:ssti 注入

打开网页,发现有个登录,试试直接登录

image-20250117165333225

看到 url 处是进行 get 传参,试试 111

image-20250117165407490

联想到 ssti 漏洞,于是用9验证一下,发现就是 ssti 模板注入

image-20250117165456193

进行 ssti 模板注入漏洞一系列,构造 payload:

1
{{cycler.next.__globals__.__builtins__.__import__('os').popen('cat flag').read()}}

image-20250117165555735

flag{48ad0cde8345c8b2608933ac4e85147e}

file_copy

考点:无回显,filter协议

image-20250117230203872

image-20250117230233073

根据代码,可以看到是post传参,参数是path。(抓包也可以看)

直接使用脚本(https://github.com/ProbiusOfficial/PHPinclude-labs/tree/bbb08b030623d481be51edea063433b8d77b2ee7/Level 17/php_filter_chains_oracle_exploit-main)

image-20250117230452787

image-20250117230507242

flag{894272cc-8e8d-47f7-9565-39636508492a}

Misc

简单算数

考点:异或

image-20250117165811554

直接进行字符串异或,得到 flag

image-20250117165855506

flag{x0r_Brute_is_easy!}

See anything in these pics

考点:文件分离

解压后是一个二维码和一个压缩包

image-20250117170037763

扫描二维码,得到解压缩包的密码

image-20250117170129000

解压后得到一张 jpg 图片。先放进 010editor 看一下,发现隐藏了文件

image-20250117170256270

用 binwalk 探测,然后提取,得到一张 png 图片

image-20250117170348138

放进 010editor 查看,可能宽高被修改过,于是修改宽高得到原图

image-20250117170548575

flag{opium_00pium}

简单提取镜像

考点:流量分析,数据修复

解压文件得到一个流量包,进行流量分析,导出文件,得到一个 zip 文件

image-20250117171207275

解压 zip 文件,得到一个破损的 img 文件,根据提示,可能可以使用 RR-Studio 工具修复。

可以直接进行文件分离,得到一个 excl 表格,得到 flag

image-20250117171347734

flag{E7A10C15E26AA5750070EF756AAA1F7C}

压力大,写个脚本吧

考点:脚本编写能力

image-20250117171504745

很明显是有密码的套娃压缩包,直接编写脚本解密

1
2
3
4
5
6
7
8
9
10
11
12
import zipfile
import base64
for i in range(99,0,-1):
i=str(i)
zipname = "C:\\Users\\Lucky\\Desktop\\春秋杯\\misc\\压力大,写个脚本吧\\zip_"+i+".zip"
passwd_path = "C:\\Users\\Lucky\\Desktop\\春秋杯\\misc\\压力大,写个脚本吧\\password_"+i+".txt"
passwd = open(passwd_path, "r").read()
passwd = base64.b64decode(passwd)
print(passwd)
ts1 = zipfile.ZipFile(zipname,'r')
ts1.extractall(r"C:\\Users\\Lucky\\Desktop\\春秋杯\\misc\\压力大,写个脚本吧",pwd=passwd)
ts1.close()

image-20250117171704899

提示是 png,然后我们将 password_0.txt 的密码进行 base64 解密

1
89504E470D0A1A0A0000000D494844520000019000000190

发现是个 png 文件头,所以这些密码应该组合在一起就是一张 png 图片。脚本直接放

1
2
3
4
5
6
7
8
import base64
stringall = ""
for i in range(0, 100):
i = str(i)
passwd_path = "C:\\Users\\Lucky\\Desktop\\春秋杯\\misc\\压力大,写个脚本吧\\password_"+i+".txt"
string = open(passwd_path, "r").read()
stringall += string
print(base64.b64decode(stringall))

得到一张二维码,直接扫,就得到了 flag

image-20250117172005199

flag{PASSWORDs_is_fl@g!}

ez_forensics

考点:镜像取证

下载附件解压,先文件扫描一下看看,查找一下关键词

image-20250121134845419

image-20250121134909012

将这两个文件(压缩包和txt)提取出来,发现压缩包解压需要密码。查看hint.txt

image-20250121135038002

60 = 13 +47,想到用rot13和rot47解密,得到

image-20250121135247193

可以知道,压缩包的解压密码需要进行hashdump。

然后找到用户密码

image-20250121135742846

image-20250121135722955

解压后得到文件

image-20250121135900120

结合提示搜索,发现了

image-20250121140041681

结合用户名,可以知道使用的试MobaXterm,所以ini文件是其配置文件

image-20250121140134279

网上搜索其密码解密,找到一篇博客,知道可以使用脚本解密

image-20250121140432635

master password就使用文件名 flag_is_here

最后解密得到

image-20250121140457763

将flag内的内容进行base64解密得到flag。

flag{you_are_a_g00d_guy}

crypto

通往哈希的旅程

考点:哈希

根据提示得到一个哈希密文

image-20250117172603778

直接哈希爆破或者在线解密得到

image-20250117172632734

flag{18876011645}