挑战一览
编程:PIN 暴力匹配
/challenge/vault.json 是每次容器启动都会用随机数据重新生成的金库记录,其中有 salt(十六进制字符串)和 pin_hash = sha256(salt + pin)(把 salt 与 6 位 pin…
编程:哈希计算
请分析每次启动时随机生成的证据文件 artifact-manifest.json。每个 artifact(artifact_00 到 artifact_09)有多条记录(name、sha256、data),只有 data 经…
编程:二进制 TLV 解析
/challenge/capture.bin 是每次容器启动都会用随机数据重新生成的自定义二进制文件。开头 4 字节为 KBIN,之后是 TLV 记录(type 1 字节、length 2 字节大端、value),type…
正则表达式:只出现一次的黄金标记
从 `data.txt` 提取所有 `KINO-四位数字-四位大写字母` 标记,找出只出现一次的值并输入 `challenge.py`;正确时显示启动时注入的 FLAG。
Linux-Capabilities:不依赖 SUID 的提权
系统中特定二进制文件被授予 Linux capabilities。请研究不使用 SUID 位的 capabilities 提权方法。
Linux-SUID:通过 find 理解提权风险
系统有一份设置了 SUID 位的 `find` 副本。本题在隔离环境中演示此类危险配置为何可导致高权限 shell。
Linux-proc 内存:查看进程环境变量
持续运行的守护进程将旗标保存在环境变量中。请通过 `/proc` 文件系统检查该进程。
Linux-strace:追踪系统调用找出文件
提供的二进制既不输出到标准输出也不落盘。它从隐藏文件读取密钥,在内存中还原旗标并写入 /dev/null。请用 strace 追踪系统调用,找出哪一个调用的参数暴露了旗标。
Linux-竞争条件:分析 TOCTOU 窗口
root 定期运行的清理脚本在检查与处理文件之间存在 TOCTOU 间隙;本题用于理解符号链接与时序风险。
Python 自动化:分析 SQLite 数据库
请分析每次启动时生成的 data.db(SQLite,含 users / orders / audit_log)。按 user_id 对 orders 做 SUM(amount) 聚合,找出订单总额最高的前 3…
Python 自动化:解密自定义密码
`cipher.txt` 以十六进制保存经自定义密码加密的旗标。加密逐字节执行 add(密钥加法)-> xor(位置相关)-> rotl(循环移位);请按逆序实现解密。完整规格见 `python3 challenge.py`。
Python 自动化:破解加密 ZIP 密码
每次启动都会生成 /challenge/secret.zip。其中有 flag.txt 和 readme.txt,使用 ZipCrypto 加密。密码是 /challenge/wordlist.txt 中的一个词再加上两位数字(00 到…
Web-21. Secure User Search 中的盲注
该用户搜索应用只报告用户名是否存在,并不直接显示查询结果。请利用错误或响应差异推断隐藏信息。
Web-22. Secure Comment Board 的 CSP 绕过
这个评论板受内容安全策略(CSP)保护,只允许本站和受信任 CDN 的脚本。请注意:受信任 CDN 上的内容也不一定安全。
Web-23. Secure Authentication System 的类型转换陷阱
该登录门户提供表单登录、JSON API 登录和验证码检查。管理员真实密码未知,但比较操作的实现可能允许绕过。
Web-24. 利用 Secure Bank 的竞态条件
Secure Bank 可用余额中的金币购买奖品。若余额检查和扣款不是原子操作,请思考如何利用两者之间的空隙。
Web-25. Greeting Card Generator 中的 SSTI
该贺卡生成器以 Flask/Jinja2 构建,会把用户消息直接交给模板引擎渲染。请检查模板语法能被执行到何种程度。
算法:迷宫中的 BFS 最短路径
请用 BFS 求 `data.txt` 中从 S 到 E 的最短路径,并将 UDLR 移动序列输入 `challenge.py`。正确路径会显示启动时注入的 FLAG。
网络分析:802.1Q VLAN 隔离的流量
`capture.pcap` 是镜像交换机中继端口抓到的流量,多个 VLAN 的帧带着 802.1Q 标签混在一起。每个 VLAN 上都有同一台设备以 `MGMT|<片段>` 的形式向 UDP 5140…
网络分析:SNMP 信息泄露
捕获到一台使用弱 community string `public` 的 SNMPv2c 设备返回 GetResponse。请分析 `traffic.pcap` 中 SNMP(UDP/161)的 varbind,并从厂商 OID…
网络分析:SSL Strip 导致的明文凭据
SSL Strip 攻击将 HTTPS 降级为 HTTP,受害者凭据以明文传输并被捕获。请分析 `traffic.pcap` 中的明文 HTTP POST,提取登录密码(即旗标)。
网络分析:解除 WebSocket 帧掩码
`capture.pcap` 记录了浏览器与聊天服务器之间的 WebSocket 通信。客户端发往服务器的每一帧都用不同的 4 字节密钥做了掩码。请解析各帧并去掉掩码,把拆成三帧的消息重新拼起来,取出部署用令牌(旗标)。
网络分析:解码自定义协议
捕获到使用简易自定义二进制协议的系统流量。请从 `traffic.pcap` 分析 TCP 9999 端口上的帧结构,解码有效载荷并取得旗标。
编程:SQLite 证据库
evidence.db 是每次启动时用随机数据生成的 SQLite 数据库(位于 /challenge,包含 users / sessions / access_log 三张表)。对 trust_score 不低于 80…