网络安全 CTF 挑战

选择一个领域与难度,在安全环境中调查证据并验证结论。

Linux难度 3

Linux-竞争条件:分析 TOCTOU 窗口

root 定期运行的清理脚本在检查与处理文件之间存在 TOCTOU 间隙;本题用于理解符号链接与时序风险。

Forensics难度 3

从 NTFS $MFT 查找已删除文件痕迹

分析 NTFS 主文件表记录,恢复已删除文件留下的驻留数据预览和 flag。

General Skills难度 3

Python API:接口自动化

容器内在 `http://127.0.0.1:8000/api/records?page=N` 运行一个分页本地 API。请遍历所有页面直到 `next` 为 `null`,只收集 `tag == "flag"` 的记录;每条形如…

Programming难度 3

Python 自动化:分析 SQLite 数据库

`data.db` 是业务 SQLite 数据库,含 users、orders、audit_log。旗标藏在订单总额 `SUM(amount)` 最大的唯一用户的 `security_note` 中;请用 JOIN 与聚合定位它。

Programming难度 3

Python 自动化:解密自定义密码

`cipher.txt` 以十六进制保存经自定义密码加密的旗标。加密逐字节执行 add(密钥加法)-> xor(位置相关)-> rotl(循环移位);请按逆序实现解密。完整规格见 `python3 challenge.py`。

Programming难度 3

Python 自动化:破解加密 ZIP 密码

`secret.zip` 用弱密码加密,内含 `flag.txt`。请用随附的 `wordlist.txt` 和 Python 标准库 `zipfile` 暴力尝试密码并提取旗标。

General Skills难度 3

SQL 查询大师:复杂连接

SQLite 数据库 `/app/company.db` 有 `employees`、`departments` 和 `projects` 三张表。找出拥有预算至少为 `100000` 项目的部门中工资最高的员工;其 `email`…

Web难度 3

Web-21. Secure User Search 中的盲注

该用户搜索应用只报告用户名是否存在,并不直接显示查询结果。请利用错误或响应差异推断隐藏信息。

Web难度 3

Web-22. Secure Comment Board 的 CSP 绕过

这个评论板受内容安全策略(CSP)保护,只允许本站和受信任 CDN 的脚本。请注意:受信任 CDN 上的内容也不一定安全。

Web难度 3

Web-23. Secure Authentication System 的类型转换陷阱

该登录门户提供表单登录、JSON API 登录和验证码检查。管理员真实密码未知,但比较操作的实现可能允许绕过。

Web难度 3

Web-24. 利用 Secure Bank 的竞态条件

Secure Bank 可用余额中的金币购买奖品。若余额检查和扣款不是原子操作,请思考如何利用两者之间的空隙。

Web难度 3

Web-25. Greeting Card Generator 中的 SSTI

该贺卡生成器以 Flask/Jinja2 构建,会把用户消息直接交给模板引擎渲染。请检查模板语法能被执行到何种程度。

Programming难度 3

算法:迷宫中的 BFS 最短路径

请用 BFS 求 `data.txt` 中从 S 到 E 的最短路径,并将 UDLR 移动序列输入 `challenge.py`。正确路径会显示启动时注入的 FLAG。

Forensics难度 3

从事件日志检测暴力破解

分析 `auth.log`,识别大量登录失败后紧跟的成功登录,以定位暴力破解来源。

General Skills难度 3

strace 调试:跟踪程序行为

`/app/mystery_program` 没有源代码。请用 `strace` 分析系统调用,找出它尝试读取的文件名和应写入的内容;写对后程序会输出旗标。

General Skills难度 3

journalctl:分析 systemd 日志

请用 `journalctl` 调查 systemd 日志,在服务、时间范围和优先级中定位旗标线索。

General Skills难度 3

Netcat:离线回调记录分析

无需连接任何外部主机,请分析预先记录的 callback transcript。不会启动 listener 或 shell;从 `callback-analysis` 记录中的编码 payload 恢复旗标。

Network难度 3

网络分析:SNMP 信息泄露

捕获到一台使用弱 community string `public` 的 SNMPv2c 设备返回 GetResponse。请分析 `traffic.pcap` 中 SNMP(UDP/161)的 varbind,并从厂商 OID…

Network难度 3

网络分析:SSL Strip 导致的明文凭据

SSL Strip 攻击将 HTTPS 降级为 HTTP,受害者凭据以明文传输并被捕获。请分析 `traffic.pcap` 中的明文 HTTP POST,提取登录密码(即旗标)。

Network难度 3

网络分析:解码自定义协议

捕获到使用简易自定义二进制协议的系统流量。请从 `traffic.pcap` 分析 TCP 9999 端口上的帧结构,解码有效载荷并取得旗标。

General Skills难度 3

性能分析:定位资源瓶颈

系统性能出现异常。请检查 CPU、内存、磁盘和进程数据,找出造成问题的工作负载及其旗标线索。

Programming难度 3

编程:SQLite 证据库

`evidence.db` 在启动时由注入的 FLAG 生成。JOIN users 与 access_log,找到 trust_score 最高的 note 并 Base64 解码。

Programming难度 3

编程:Web 抓取图遍历

`site.json` 在启动时由注入的 FLAG 生成。沿 link 图的 order 顺序取得 comment 的 Base64 片段并连接。

Programming难度 3

编程:ZIP 密码恢复

`archive.json` 在启动时由注入的 FLAG 生成。用 wordlist 找到 SHA-256 与 `password_sha256` 匹配的密码,再用其 key byte XOR 解密。