挑战一览
Linux-SUID:通过 find 理解提权风险
系统有一份设置了 SUID 位的 `find` 副本。本题在隔离环境中演示此类危险配置为何可导致高权限 shell。
Linux-proc 内存:查看进程环境变量
持续运行的守护进程将旗标保存在环境变量中。请通过 `/proc` 文件系统检查该进程。
Linux-strace:追踪系统调用找出文件
提供的二进制既不输出到标准输出也不落盘。它从隐藏文件读取密钥,在内存中还原旗标并写入 /dev/null。请用 strace 追踪系统调用,找出哪一个调用的参数暴露了旗标。
Linux-竞争条件:分析 TOCTOU 窗口
root 定期运行的清理脚本在检查与处理文件之间存在 TOCTOU 间隙;本题用于理解符号链接与时序风险。
从 NTFS $MFT 查找已删除文件痕迹
给你把 Windows 终端 `KINOCO-WS07` 的 `$MFT` 按记录导出的文本 `/challenge/mft_records.txt`(开头给出簇大小和转储的起始 LCN),以及卷 C: 的簇原始数据…
Python API:接口自动化
容器内在 `http://127.0.0.1:8000/api/records?page=N` 运行一个分页本地 API。请遍历所有页面直到 `next` 为 `null`,只收集 `tag == "flag"` 的记录;每条形如…
SQL 查询大师:复杂连接
SQLite 数据库 `/challenge/company.db` 有三张表: - employees (id, name, department_id, salary, email, note) - departments (id,…
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 构建,会把用户消息直接交给模板引擎渲染。请检查模板语法能被执行到何种程度。
从事件日志检测暴力破解
分析服务器 `kinoco-srv01` 的 sshd 认证日志 `/challenge/auth.log`,找出暴力破解成功的攻击者会话。 这台服务器是蜜罐,每打开一个会话,PAM 模块都会发放一个金丝雀令牌,并按下面的形式掩码后记录。…
strace 调试:跟踪程序行为
`/challenge/strace.log` 是用 strace 跟踪无源代码程序 `/app/mystery_program` 得到的记录。程序会读取多个内容形似令牌(`KINOCO{...}`)的文件,但同时满足以下两个条件的只有一…
journalctl:分析 systemd 日志
分析以 `journalctl -o short` 格式导出的 systemd 日志 `/challenge/system.log`。每行格式为“时间 主机 单元[PID]: 优先级: 消息”。单元字段为 `authd` 且优先级字段为…
Netcat:离线回调记录分析
无需连接任何外部主机,请分析预先记录的 `artifacts/netcat/callback-transcript.log`,不会启动 listener 或 shell。在连接列表中找到从被攻陷主机 `10.0.5.23` 连到…
性能分析:定位资源瓶颈
分析服务器快照 `/challenge/metrics.log`。前半部分是 top 风格的进程表(%CPU 在第 9 列,%MEM 在第 10 列),后半部分是 ps -ef 风格的完整命令行列表。%CPU 不低于 50.0 且…
从内存发现可疑网络连接
从被入侵主机 `kinoco-app03` 的内存镜像中,恢复出了套接字列表 `/challenge/netstat_dump.txt`,以及每个拥有 ESTABLISHED 套接字的进程的堆区域…
从内存恢复执行过的命令
从内存字符串记录 `memdump.txt` 中提取命令历史,找出可疑命令及其中的 flag。
恢复已删除的 SQLite 记录
给你内部聊天工具 "kinoco-msg" 的 SQLite 数据库 `/challenge/app.db`。作为 "机密消息" 发送的正文,按下面的形式保存: body = "enc:v1:" + hex(明文 XOR 密钥流)…
解开多重压缩文件
`/challenge/artifact.xz` 是攻击者试图带出的文件,被 gzip、bzip2、xz、zip、tar 层层嵌套包裹。请逐层辨认格式并剥开,从最深处的 `flag.txt` 中取得 flag。…
解密加密磁盘
`/challenge/secret_disk.img` 是真实的 LUKS2 容器,数据区里放着一份备份(tar 归档)。口令很弱,是 `/challenge/wordlist.txt` 中的某一项。 这个终端无法使用…
密码分析:RSA 共模攻击
两个系统共用同一个 RSA 模数 n,只改变了公开指数。同一条消息分别用 e1 和 e2 加密得到的密文 c1、c2 已经泄露(`public_keys.txt`、`ciphertexts.txt`)。n…
密码分析:小素数 Diffie-Hellman
一台旧 IoT 设备使用只有 36 位的素数 p 进行 Diffie-Hellman 密钥交换。`handshake.txt` 中有 p、g、`A = g^a mod p`、`B = g^b mod…