Skip to content

v2.2.0-r3

Choose a tag to compare

@D1a0y1bb D1a0y1bb released this 11 Jun 08:39
· 5 commits to main since this release
Immutable release. Only release title and notes can be modified.

变更

  • Compose/Vulhub-like 导入增强:draft 保留 ports、environment、depends_on、volumes、networks、healthcheck、command/entrypoint 等线索;renderable subset 支持 image tag/digest 别名匹配、host/container 端口带入、environment 带入和 depends_on 写回。
  • check-service 生成器增强:HTTP 支持状态码、正向/反向文本和 header 断言;Redis 支持 key/value 检查;MySQL 支持 query 结果断言;SSH 支持 banner 断言。
  • smoke_test.sh 增加可选 smoke_assert.yaml 业务断言,支持 HTTP、TCP 和容器内命令;已有 smoke_assert.sh 保持兼容。
  • Linux-QEMU 样例维护规则细化:Fragnesia 继续作为外部真实资产样例;Copy Fail 记录为候选负例,缺资产 manifest、boot、flag readback 与 PoC 证据前不升级为真实样例。
  • 新增 scripts/check_fast.sh,日常维护只执行 Python/Bash 语法、文档治理和 git diff --check
  • smoke_test.sh 增加 --case <name>SMOKE_CASES=a,b,可只跑受影响的示例,避免每次都执行全量 Docker smoke。

修复

  • 真实历史题复刻路径增强:Pwn/BOF 输入会优先识别 ELF、C 源码、Makefile、xinetd/socat/tcpserver/chroot 等强证据,减少被遗留 package.json 或前端说明页误判为 Node 的情况。
  • 历史运行时保留更明确:渲染基础镜像优先级调整为 --base-image > CLI --runtime-profile > challenge.base_image > challenge.runtime_profile > infer/default,避免 challenge.yaml 中明确写出的 PHP 7.4、Node 14、JDK 8 等老环境被自动推断覆盖。
  • parse_config_block.py 保留更多已确认字段,包括 runtime_depsbuild_depsextra.*flag.sync_pathsverification.solve_probeplatform.docker_platformsupport_level
  • workflow.py accept --refresh 可在用户确认后重新记录当前 challenge.yaml hash,适配人工修正配置后继续走 gate 的场景。
  • workflow.py --pretty 与子命令 --pretty 兼容,等价于 --format json,避免真实使用中因参数不支持中断。
  • 动态 flag 同步能力增强:changeflag.sh 可把动态 flag 同步到题目业务实际读取路径,避免题目读 /home/ctf/flag 等路径时只更新 /flag
  • validate.sh 明确说明自身只验证平台交付契约,不证明题目已经可解;如果配置 verification.solve_probe,会提示业务入口断言应在 smoke 阶段执行。
  • smoke_test.sh 支持 challenge.verification.solve_probe,可直接从 challenge.yaml 生成业务断言并执行 HTTP/TCP/容器命令类检查。
  • 发布包路径继续校验,安装版 Skill 文档不再引用 src/CloverSec-CTF-Build-Dockerizer/ 这类安装后不存在的源码路径。

验证

  • 真实 LLM A/B:修复前 HEAD 为 3/6,当前 r3 候选为 6/6;Pwn BOF 混合输入、PHP 7.4 保留、业务 flag 路径 + solve_probe 均从失败变为通过。
  • 本地完整验证通过:check_fast.shgolden_snapshot.pyplatform_matrix.py --profile releasevalidate_build_test.pyvalidate_examples.sh、Linux-QEMU Fragnesia preflight、release_build.sh --with-smoke 均通过。
  • Docker smoke:35 通过 / 0 失败 / 4 按策略跳过。
  • 定向反馈验证通过:真实 Pwn ELF + 遗留 package.json 识别为 pwn;PHP Dockerfile 保持 FROM php:7.4-cli;动态 flag 精确写入 flag{abc}verification.solve_probe smoke 通过。