挑战一览
Linux-脚本调试:修复损坏的 Bash 脚本
脚本内有多个故意设置的拼写和语法错误,无法运行到最后。请用 Bash 调试功能逐一修复。
Linux-网络基础:连接监听端口
后台服务正在某个端口监听。请用 `ss` 或 `netstat` 找到端口,并以 `nc` 连接来接收旗标。
Linux-备份查找:辨认真正的临时文件
项目目录有多个以 `.bak`、`.tmp` 或 `~` 结尾的诱饵备份和临时文件;真正的旗标位于隐藏文件中。
Linux-管道:用 grep 和 awk 筛选日志
访问日志包含大量记录。某个 IP 在短时间内产生了大量 404,将它这一连串请求的路径拼接起来即为旗标。请用管道组合 grep、awk、sort、uniq 等命令来拼出答案。
Linux-软件包信息:检查已安装软件包详情
系统安装了一个自制 deb 软件包。请用 `dpkg` 或 `apt` 查看其详情,并在描述中寻找隐藏信息。
Linux-进程追踪:找出运行中的目标进程
多个后台进程中有一个把旗标放在命令行参数里。请用 `ps` 列出并找出它。
Linux-用户调查:用 awk 筛选目标用户
系统中注册了多个用户。请用 `awk` 解析 `/etc/passwd` 找到满足条件的用户,再检查其主目录中的隐藏文件。
Linux-日志轮转:搜索压缩的旧日志
部分旧日志已被 gzip 压缩;请在不解压文件的情况下搜索其中的旗标。
Linux-日志探索:从多份日志中挖出旗标
应用与系统日志中只有一条 `DEBUG` 记录包含旗标。请用 `grep` 等工具筛选。
Linux-环境变量秘密:寻找名为 FLAG 的变量
系统设置了多个环境变量,其中包括诱饵凭据。请列出变量并找出保存旗标的那一个。
RC4 流密码的弱点
RC4 曾被广泛使用,但如今已不推荐。本入门题着重识别提供的数据格式。 Base64 字符串: S0lOT0NPe3JjNF9pc19kZXByZWNhdGVkfQ== 它实际上并不是 RC4 密文,请按 Base64 解码取得旗标。
维吉尼亚密码解密
维吉尼亚密码由多个凯撒密码组合而成。已知密钥长度时,请解密密文并取得 flag。 密文: KMNRCS{vlginhri_clpleu_axtdco} 密钥长度为 4 个字符。请解密并提交旗标。
寻找哈希碰撞
MD5 可实际构造不同输入却具有同一哈希值的碰撞。碰撞抗性已失效的哈希不应再用于安全敏感的完整性保护或签名。 据称具有相同 MD5 的两个文件: file_a != file_b md5(file_a) =…
哈希长度扩展攻击
对 MD5、SHA-1、SHA-256 等 Merkle–Damgård 哈希,直接以 `hash(secret || message)` 作为签名可能受到长度扩展攻击。 已知消息与 SHA-256: message =…
填充预言机入门
填充预言机攻击会利用不同错误响应作为恢复明文的信号。本入门题请从泄露的 Base64 字符串中读取 flag。 泄露的 Base64 字符串: Vmlld1NvdXJjZTpLSU5PQ097cGFkZGluZ19vcmFjbGVfYmF…
彩虹表攻击
未加盐的快速哈希可被预计算反查数据库轻易还原。请反查给出的 MD5 哈希。 MD5 哈希: 5f4dcc3b5aa765d61d8327deb882cf99 请反查该哈希,并把原始字符串以 KINOCO{...} 的形式提交。
一次一密密钥复用攻击
一次一密仅在密钥只使用一次时安全。复用同一密钥时,可由已知明文恢复另一段明文。 用同一密钥加密的两个密文: ciphertext1_hex = 1c0a070901 known_plaintext1 = HELLO…
可预测的随机数
固定种子的伪随机输出可被复现;通用随机数生成器不能用于加密机密。 旗标生成代码: import random random.seed(12345) flag_chars = [chr(random.randint(65, 90))…
破解小型 RSA 密钥
RSA 依赖足够大的素数。本题的 `n` 过小;请分解它、求出私钥指数,并解密密文数列。 公钥与密文: n = 323 e = 5 ciphertexts = [115, 181, 241, 109, 109, 57, 190,…
密码分析:破解仿射密码
`ciphertext.txt` 是用仿射密码 `E(x) = (a×x + b) mod 26` 加密的英文报告,大小写保持不变,非字母字符原样保留。请以明文以单词 KINOCO 开头为线索求出密钥 a、b 并解密,提交最后一行中的旗标。
Linux-Capabilities:不依赖 SUID 的提权
系统中特定二进制文件被授予 Linux capabilities。请研究不使用 SUID 位的 capabilities 提权方法。
Linux-SUID:通过 find 理解提权风险
系统有一份设置了 SUID 位的 `find` 副本。本题在隔离环境中演示此类危险配置为何可导致高权限 shell。
Linux-proc 内存:查看进程环境变量
持续运行的守护进程将旗标保存在环境变量中。请通过 `/proc` 文件系统检查该进程。
Linux-strace:追踪系统调用找出文件
提供的二进制既不输出到标准输出也不落盘。它从隐藏文件读取密钥,在内存中还原旗标并写入 /dev/null。请用 strace 追踪系统调用,找出哪一个调用的参数暴露了旗标。