网络安全 CTF 挑战
选择一个领域与难度,在安全环境中调查证据并验证结论。
Programming难度 4高级 Python:执行自定义 VM 字节码
`program.kvm` 是自定义四寄存器 VM 的字节码。根据 README 的指令规格实现 Python 解释器,并恢复 VM 输出。
Forensics难度 4解密 TLS 加密的 HTTPS 通信
分析安全 TLS 取证 fixture:`traffic.pcap` 是一条 TLS 应用数据的文本记录,`sslkeylog.txt` 为对应 key-log。无需截获实时流量,请从已记录的解密载荷恢复 flag。
Web难度 4Web-26. User Profile Manager 中的原型污染
在这个 Node.js/Express 应用中,已登录用户能更新自己的资料。请检查用于更新的递归合并函数是否过滤了特殊键。
Web难度 4Web-27. GraphQL API 的内省信息泄露
该 GraphQL API 公开 User 对象的 schema,并启用了内省。请调查默认界面之外是否存在未记录的查询或字段。
Web难度 4Web-28. 劫持 OAuth 授权码
该 OAuth 2.0 授权提供方提供登录流程,但对 redirect_uri 的校验可能过弱。请尝试劫持授权码并取得管理员级访问令牌。
Web难度 4Web-29. MongoDB 登录表单中的 NoSQL 注入
该登录门户使用 MongoDB,并把用户名和密码 JSON 直接放入查询。请尝试在不知道真实密码时以管理员身份登录。
Web难度 4Web-30. KinoVault 中的不安全反序列化
旧式备份系统 KinoVault 据称用 Python `pickle` 序列化用户会话并存进 Cookie。请分析 Cookie 格式,并检查构造的 pickle 是否能提升权限。
General Skills难度 4自定义工具:目录扫描报告分析
请分析本地生成的目录扫描报告,而不是扫描真实网站。恢复成功的 `secret_admin/backup` 记录中的负载。
General Skills难度 4SSH 隧道:访问回环内部服务
在单个容器内练习 SSH 本地端口转发。SSH 跳板为 `127.0.0.1:22`,内部服务只监听同一容器的 `127.0.0.1:5432`。请安全地转发到端口 `8888` 并取得响应;不使用外部主机或真实数据库。
Network难度 4网络分析:TCP 重传差分隐蔽信道
`capture.pcap` 中有 TCP 序列号相同的重传包。请仅提取有效载荷发生变化的重传,对每个重复序列号的两个单字节有效载荷做 XOR,并按序列号顺序拼接以恢复旗标。
Programming难度 4二进制修复:固件头与 CRC32
修复 `firmware.bin`:将 byte 0-3 写为 `KINO`,并把 byte 12 之后数据的 little-endian CRC32 写回 byte 8-11。将修复文件交给 `challenge.py`…
Programming难度 4编程:C2 通信分析
`beacon.log` 在启动时由注入的 FLAG 生成。按 seq 连接 Base64 payload,并以 `beacon-v1` 的 SHA-256 前八字节重复 XOR 解密。
Programming难度 4编程:缓冲区溢出崩溃报告分析
`crash-report.txt` 在启动时由注入的 FLAG 生成。选择 SIGSEGV 且匹配 fault_offset 的记录,用 `training-stack-canary` 密钥 XOR 解密…
Programming难度 4编程:模糊测试结果分析
`fuzz-results.log` 在启动时由注入的 FLAG 生成。选择触发 SIGSEGV 的输入,并以 `BLAKE2s(fuzz-case-17)` XOR 解密。
Programming难度 4编程:区块链事件重组
`blocks.json` 在启动时由注入的 FLAG 生成。筛选 `FlagFragment` 且 topic 为 `0xfeedface` 的事件,按 index 连接并十六进制解码。
Programming难度 4编程:Rootkit 视图差异
`proc_ps.txt` 与 `proc_kernel.txt` 在启动时由注入的 FLAG 生成。比较两份进程视图的差异,并对隐藏 marker 做 ROT13 解码。
Programming难度 4编程:异常检测
`requests.csv` 在启动时由注入的 FLAG 生成。请选出 signal 最大的记录,对其 payload 做 Base85 解码后 XOR 解密以恢复旗标。
Programming难度 4编程:渗透测试框架
`findings.json` 在启动时由注入的 FLAG 生成。定位可达的 critical finding,反转其 `reversed_token` 以恢复旗标。
Programming难度 4编程:异步扫描器
`scan.json` 在启动时由注入的 FLAG 生成。选择 `443/tcp` 为 open 的验证主机,将其 `review_fragments` 以十六进制解码来恢复旗标。
Forensics难度 4从内存提取恶意软件载荷
分析内存字符串记录 `memstrings.txt` 的安全文本 fixture,恢复经过 Base64 和单字节 XOR 混淆的 stage2 载荷。
Forensics难度 4从内存检测隐藏的内核模块
比较模块链表与 sysfs 视图,找出未链接但仍存在于 sysfs 的隐藏内核模块及其 flag。
Forensics难度 4解读多阶段隐写
从 PNG 的 LSB 开始,继续分析 IEND 后的 Base64 数据和零宽字符文本,恢复三阶段隐藏的 flag。
Forensics难度 4恢复碎片化的 JPEG 文件
根据每个碎片 `.meta` 中经过验证的 SHA-256 链确定顺序,重组 JPEG 并读取其注释中的 flag。
General Skills难度 4GPG 加密:解密受保护消息
请用 GPG 解密文件。`/app/secret.gpg` 是加密文件,`/app/private.key` 是受 passphrase 保护的私钥,`/app/hint.txt` 提供 passphrase 提示。导入私钥、从提示推断…