PauliusPukinskas/CTF-Sloper

GitHub: PauliusPukinskas/CTF-Sloper

一款基于浏览器界面运行的本地 CTF 解题工作台,通过自动化提取和递归解码帮助选手快速解决隐写、取证和密码学等文件类挑战。

Stars: 7 | Forks: 0

# CTF Sloper 基于本地浏览器的 CTF 解题工作台,适用于文件类挑战:隐写、杂项、逆向工程、取证、密码学、PCAP、归档、图像、二进制文件、文档、音频、数据库以及生成的制品。 此仓库的结构设计允许其直接上传到 GitHub,并仍可通过一条命令在本地运行。 ## 快速开始 ``` git clone https://github.com/PauliusPukinskas/CTF-Sloper.git cd CTF-Sloper bash START_HERE.sh ``` 然后打开: ``` http://127.0.0.1:7860 ``` ## 上传至 GitHub 阅读 [`GITHUB_UPLOAD.md`](GITHUB_UPLOAD.md),或使用: ``` cd ctf-sloper bash scripts/git_init_upload.sh YOUR_GITHUB_USERNAME ctf-sloper ``` ## 安装外部 CTF 工具 支持 **Ubuntu / Debian / Pop!\_OS** 和 **Arch Linux** ``` bash FULL_INSTALL.sh ``` 这将安装常见的 CTF 工具,例如 `binwalk`、`exiftool`、`steghide`、`zsteg`、`tshark`、`qpdf`、`gdb`、`jadx`、OCR 工具,以及 Python/Ruby/Node 辅助包。 在 Arch Linux 上,AUR 包(`foremost`、`steghide`、`apktool`、`jadx` 等)需要 AUR 助手。如果你还没有安装: ``` git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si ``` ## 清晰的仓库结构 ``` ctf-sloper/ ├── README.md # Main project overview ├── GITHUB_UPLOAD.md # Step-by-step GitHub upload guide ├── START_HERE.sh # One-command local launcher ├── FULL_INSTALL.sh # Full system tool installer wrapper ├── app.py # Small runtime entrypoint ├── sloper_legacy.py # Legacy solver/app monolith kept for compatibility ├── sloper_v72/ # Modular solver/runtime layers ├── static/ # Browser UI ├── data/ # Tool catalogs, workflows, YARA/rules/configs ├── projects/ # Local generated projects; ignored by git ├── scripts/ # Start/check/package/upload helpers ├── docs/ # Architecture, usage, roadmap, changelog ├── tests/ # Lightweight smoke tests ├── .github/workflows/ # GitHub Actions check workflow ├── requirements.txt # Python runtime dependencies ├── pyproject.toml # Project metadata ├── Makefile # Short commands: make run/check/package ├── .gitignore # Keeps local artifacts/secrets out of commits └── .gitattributes # Stable line endings and binary handling ``` ## 常用命令 ``` bash START_HERE.sh # run locally bash scripts/check.sh # syntax/import checks make run # same as START_HERE make check # same as scripts/check.sh make package # create zip/tar release from repo ``` ## CTF 使用流程 1. 在浏览器 UI 中创建一个项目。 2. 上传该任务的所有挑战文件。 3. 首先查看排名靠前的发现。 4. 当 flag 不明显时,检查制品/转换/预览。 5. 将生成的挑战输出保留在 `projects/` 目录内;该文件夹会被 git 忽略。 ## 重要安全提示 本工具仅供本地 CTF/实验室使用。请勿提交私有挑战文件、凭据、token、内存转储或来自真实比赛的生成制品。 ## v110 重构 + 基准测试模式 此仓库不再将所有运行时代码保存在一个庞大的 `sloper_legacy.py` 文件中。 旧的单体文件已被拆分到 `sloper_legacy_parts/` 中,而 `sloper_legacy.py` 作为兼容性加载器保留。 新的改进应放入 `sloper_v72/` 或未来的 `core/` / `solvers/` 模块中。 运行回归基准测试: ``` python3 scripts/benchmark_solver.py ``` 默认启用安全快速通道解题。仅针对旧引擎进行性能分析时: ``` SLOPER_ENABLE_LEGACY_DEEP=1 SLOPER_ENABLE_LEGACY_SUMMARY=1 bash START_HERE.sh ``` ## v111:操作员控制的解题 此版本为 CTF 运行添加了真正的控制平面: - 可选的 flag 格式:`ctf_cs{...}`、`ctf_cm{...}`、`flag{...}`、`picoCTF{...}`、`HTB{...}`、纯 `{...}`、任意前缀或自定义 regex; - 攻击预设:quick(快速)、balanced(平衡)、deep(深度)、hardcore(硬核); - 难度提示:easy(简单)、medium(中等)、hard(困难)、multi-step(多步骤); - 每个项目的 solver 设置保存在 `project.json` 中; - 更清晰的制品摘要和有界限的基准测试脚本。 运行本地回归基准测试: ``` python3 scripts/benchmark_solver.py ``` ## 最终后端解题率提升 此构建保持前端不变,并改进了后端 solver 路径: - 最终排名现在为每个候选保留证据效力最强的一行,因此早期微弱的 字符串命中无法掩盖后来解码/提取的制品证据; - 经典密码学仅在类文本输入上运行,减少了二进制 容器产生的虚假 flag; - `sloper.deep_workflows` 添加了有界递归解码、字节数组转换、 PNG/JPEG/WAV 提取、magic payload carving、ZIP 元数据通道,以及 项目级别的拼接/交错/XOR/ADD/SUB 工作流; - `sloper.pattern_intelligence` 集成了 `data/ai_ctf_multistep_patterns.jsonl` 并写入 `pattern_hypotheses.json` 和 `workflow_queue.md` 制品,以便 即使未找到最终 flag,操作员也能跟进可能的 CTF 工作流; - `scripts/benchmark_ai_pattern_corpus.py` 验证所有 3000 行工作流模式 并运行具有代表性的生成 solver 冒烟测试用例。 有用的后端检查: ``` python3 scripts/backend_guard_smoke.py python3 scripts/benchmark_solver.py python3 scripts/benchmark_extra_multistep.py python3 scripts/benchmark_ai_pattern_corpus.py --solver-sample 20 ``` ## 后端可靠性防护 当前后端在 `sloper/backend_guard.py` 中包含了一个后期的运行时防护。 它保留了现有的 solver 栈,同时收紧了可能会 破坏真实 CTF 会话的高风险边缘:流式上传、项目 ID 验证、原始制品 路径包含、`events.log` 尾部追踪、原子 `report.json` 写入、ZIP 解压限制、自定义 regex 清理、安全的 `.pyc` 字符串提取,以及 阻止自动执行/追踪上传的二进制文件。最终排名 门控还同步了较旧的分流摘要,因此在发现更强的解码 制品后,元数据标签或陈旧的 ROT/路由噪声将不再作为首要候选。 针对本地 CTF writeup/挑战仓库运行公平的基准测试: ``` python3 scripts/benchmark_writeup_repo.py /path/to/CTF ``` ## v112:整洁的 UI + 递归解码器基准测试 此版本添加了更整洁的、适配 GitHub 的 UI,并修复了几个控制平面 bug: - 自定义 flag 格式现在通过 `/api/preferences` 持久化 - 每个 solver 项目的设置会被 fast-lane solver 遵循 - UI 标签页稳定,不再与隐藏面板不匹配 - `/` 重定向到 `/static/index.html` - `/api/ui_health` 报告重复的路由问题 - 有界递归解码器涵盖 base64/base64url、hex、base32、base85、URL、HTML 实体、ROT、reverse、gzip/zlib/bz2/xz、十进制字节、二进制位、Morse 和小规模 XOR 运行本地检查: ``` bash scripts/check.sh PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python3 -m pytest -q python3 scripts/benchmark_solver.py ``` 最新合成基准测试:`15/15` 通过;参见 `docs/BENCHMARK_RESULTS_v112.json`。 ## v113:竞赛证据 + 真实挑战基准测试 此版本在 v112 UI/解码器引擎之上添加了竞赛就绪层: - 为每个候选 flag 提供排名证据:置信度、风险、判定、链路、原因和警告; - 虚假/示例/诱饵 flag 降级,使得明显的误导信息不会排在解码证据之上; - 针对类 ZIP/TAR/Office 容器、图像 LSB 通道、大小写位、空格/制表符位、零宽位、可打印字符串和 data URI payload 的有界提取器; - 用于 CTF 任务文件夹的真实挑战包基准测试命令; - UI flag 卡片现在显示置信度/风险/链路,而不仅仅是原始分数。 运行完整的本地验证: ``` bash scripts/check.sh PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python3 -m pytest -q python3 scripts/benchmark_solver.py ``` 对真实的本地挑战包进行基准测试: ``` python3 scripts/benchmark_challenge_pack.py /path/to/challenges \ --flag-format ctf_cs \ --attack-preset deep \ --difficulty multi_step \ --max-depth 5 ``` 参见 [`docs/COMPETITION_READINESS_v113.md`](docs/COMPETITION_READINESS_v113.md)。 ## v114:前沿提取器 + 专门的取证层 v114 在 v113 之上添加了另一个竞赛强化层。它专为更困难的本地文件挑战而设计,这些挑战中的 flag 隐藏在容器、二进制转换、文档格式或视觉/音频侧信道之后。 v114 的新增内容: - 具有显式转换链的递归 payload 前沿; - 在纯文本快速通道之外进行 gzip/bz2/xz/zlib/raw-zlib 剥离; - 针对类 flag 解码 payload 的单字节 XOR 恢复; - 针对 `.docx`、`.xlsx` 和 `.pptx` XML 文本片段的 Office ZIP 文本规范化; - SQLite 只读表/文本提取; - PNG `tEXt`/`iTXt`/`zTXt`/辅助块提取; - WAV PCM LSB 通道提取; - 用于快速视觉隐写审查的图像位平面预览制品; - UI 中的 v114 操作员分流:最佳 flag、置信度、风险桶、制品种类计数; - 挑战包基准测试现在同时写入 JSON 和 HTML 报告。 运行验证: ``` bash scripts/check.sh PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python3 -m pytest -q python3 scripts/benchmark_solver.py ``` 对真实的本地挑战包进行基准测试并获取 HTML 报告: ``` python3 scripts/benchmark_challenge_pack.py /path/to/challenges \ --flag-format ctf_cs \ --attack-preset deep \ --difficulty multi_step \ --max-depth 6 \ --out docs/CHALLENGE_PACK_BENCHMARK_v114.json \ --html-out docs/CHALLENGE_PACK_BENCHMARK_v114.html ``` 参见 [`docs/COMPETITION_READINESS_v114.md`](docs/COMPETITION_READINESS_v114.md)。 验证说明:参见 [`docs/VALIDATION_v114.md`](docs/VALIDATION_v114.md)。 ## v115:广泛提取器 + 实时分流升级 此版本在 v114 之上添加了更广泛的竞赛层: - 跨通道顺序、位位置和像素顺序的深度图像 LSB 提取; - PDF 流/字符串提取,包括 FlateDecode 流; - JPEG/GIF 元数据和注释; - 经典 PCAP 数据包 payload 提取; - 从本地字符串和挑战名称动态重试 ZIP 密码; - 针对 data URI、base85/ascii85、quoted-printable 和 uuencode 的 token 恢复; - v115 可信/有前途/手动分流桶和操作员 playbook 制品。 运行本地验证: ``` bash scripts/check.sh PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python3 -m pytest -q python3 scripts/benchmark_challenge_pack.py /path/to/challenges --flag-format ctf_cs --attack-preset deep --difficulty multi_step --max-depth 6 ``` ## v116:Cyber Sprint 基准测试强化 此更新为立陶宛 Cyber Sprint 风格的包添加了一个新的有界纯本地竞赛层: - 针对 gzip/tar/zip 的递归 payload 前沿,以及在图像或磁盘转储内提取的 ZIP/OOXML; - Morse 解码和 Morse 派生的归档密码,包括立陶宛语密码变体; - 短密码文本文件的矩形/路由置换恢复; - 针对成对挑战文件的兄弟感知 message+key 工作流; - pcapng 原始 IPv4 payload、IP-ID 和 TTL 通道提取; - pyc 常量/反汇编提取以及 ELF/PE 静态字符串证据; - v114 分流降级了短 XOR/非 ASCII/模板虚假 flag。 Cyber Sprint 包基准测试命令: ``` python3 scripts/benchmark_challenge_pack.py "/path/to/Cyber Sprint 2026 1 etapas" \ --recursive-leaves \ --flag-format ctf_cs \ --attack-preset deep \ --difficulty multi_step \ --max-depth 6 \ --out docs/CYBER_SPRINT_2026_STAGE1_v116.json \ --html-out docs/CYBER_SPRINT_2026_STAGE1_v116.html ``` ## v117:真实语料库基准测试和分流强化 v117 侧重于在真实 CTF 包上的可靠性,而不仅仅是合成环境下的胜利: - 硬隔离的基准测试运行器,具有每个挑战子进程/进程组的超时机制; - 分块基准测试 flag:`--offset`、`--limit`、`--only-regex` 和 `--merge-existing`,适用于大型包; - 任务说明抑制,使得像 `Vėliavėlės formatas ctf_cs{...}` 这样的指令不再成为虚假 flag; - 对于要求提供解码消息哈希的任务,进行 Cardan/grille SHA256 提升; - v117 分流降级了时间戳、元数据 ID、占位符和中间路由文本; - 用于时间日志异常提取、制品日志重建、EXIF/GPS 提取、ZIP 照片包和 PCAP HTTP/域名文本的新真实语料库路由。 推荐的真实包基准测试: ``` python3 scripts/benchmark_challenge_pack.py "/path/to/Cyber Sprint 2026 1 etapas" \ --recursive-leaves \ --flag-format ctf_cs \ --attack-preset deep \ --difficulty multi_step \ --max-depth 6 \ --per-challenge-timeout 20 \ --out docs/REAL_PACK_v117.json \ --html-out docs/REAL_PACK_v117.html ``` 对于大型包,分块运行并合并: ``` python3 scripts/benchmark_challenge_pack.py /path/to/pack --recursive-leaves --offset 0 --limit 6 --merge-existing --out docs/REAL_PACK_v117.json python3 scripts/benchmark_challenge_pack.py /path/to/pack --recursive-leaves --offset 6 --limit 6 --merge-existing --out docs/REAL_PACK_v117.json python3 scripts/benchmark_challenge_pack.py /path/to/pack --recursive-leaves --offset 12 --limit 6 --merge-existing --out docs/REAL_PACK_v117.json ```
标签:CTF工具, 云资产清单, 取证, 域环境安全, 多模态安全, 安全, 密码学, 应用安全, 手动系统调用, 数据可视化, 漏洞搜索, 超时处理, 逆向工具, 逆向工程, 隐写术