挑战一览
02. 隐藏的秘密:Base64 解码
Base64 是将二进制数据作为文本传输的编码方式,并不是加密。请解码给出的 Base64 字符串以找出 flag: RkxBR3tiYXNlNjRfaXNfbm90X2VuY3J5cHRpb259
09. Python 自动化:读取文件
安全工作常需用编程处理大量数据。本题的 `data.txt` 有 100 行文本,其中一行包含旗标;请补全 Python 代码并找出它。
11. 解读凯撒密码
凯撒密码是最经典的古典密码之一:它将字母按固定数量平移。 密文:IODJ{fdhvdu_flskhu_edvlfv} 找出平移量并解码 flag。
14. ROT13 的魔法
ROT13(Rotate 13)是一种将英文字母平移 13 位的凯撒密码。对它执行两次会还原原文,因为字母表共有 26 个字母。 密文:SYNT{ebg13_vf_flzzrgevp} 请用 ROT13 解码并找出 flag。
AES-ECB 模式的弱点
ECB 会让相同明文块产生相同密文块并泄露模式。本入门题先辨别加密与编码的区别。 十六进制数据: 4b494e4f434f7b6563625f6d6f64655f69735f7765616b7d…
API 请求:识别最高利润交易
容器启动时,股票 API 会在 http://localhost:9102 上运行(无需自己启动 server.py)。请通过 GET /api/stocks 和 GET /api/stocks/<symbol> 获取 5 只股票共约…
Python 练习:批量解码 Base64 流
data.txt(约 150 行,每次启动时生成)的每一行都是 Base64。请逐行解码,如果结果以 "b64:" 开头,就把剩余部分再做一次 Base64 解码(有些行嵌套多层)。无法解码的行(损坏的…
Python 练习:条件筛选 CSV 销售数据
每次启动时生成的 data.txt 是销售 CSV(transaction_id,date,product_id,amount,status,ref,notes)。同时满足 amount >= 10000、status 为…
Python 练习:复合查询 JSON 用户数据
请分析每次启动时生成的 JSON 文件 data.txt({"users": [...]})。每个用户包含 id、name、email、role、active、token。同时满足 role 为 "admin"(完全一致)、active…
Python 练习:追踪访问日志中的目标 IP
data.txt(约 1300 行,每次启动时生成)是 Web 服务器的访问日志。请只提取来自 192.168.1.100 的访问(混入了 192.168.1.10、192.168.1.101 等相似的诱饵 IP)。这个 IP 通过…
Python 自动化:批量 Base64 解码
data.txt(约 150 行,每次启动时生成)的每一行都是 Base64。请逐行解码,如果结果以 "b64:" 开头,就把剩余部分再做一次 Base64 解码(有些行嵌套多层)。无法解码的行(损坏的…
Python 自动化:筛选 CSV 销售数据
每次启动时生成的 data.txt 是销售 CSV(transaction_id,date,product_id,amount,status,ref,notes)。同时满足 amount >= 10000、status 为…
Python 自动化:查询 JSON 用户数据
请分析每次启动时生成的 JSON 文件 data.txt({"users": [...]})。每个用户包含 id、name、email、role、active、token。同时满足 role 为 "admin"(完全一致)、active…
Python 自动化:解析访问日志
data.txt(约 1300 行,每次启动时生成)是 Web 服务器的访问日志。请只提取来自 192.168.1.100 的访问(混入了 192.168.1.10、192.168.1.101 等相似的诱饵 IP)。这个 IP 通过…
Python 自动化:破解密码哈希
请分析每次启动时随机生成的 data.txt(SHA-256 哈希列表)和 wordlist.txt(800 个由 4 位小写字母和数字组成的 token)。data.txt 的每一行要么是诱饵 sha256(word)(word 是…
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…
编程:Bash 脚本
/challenge/jobs.log 是每次容器启动都会用随机数据重新生成的夜间批处理日志。每一行是一次作业运行,key=value 字段以空格分隔。请只选出 job 恰好为 archive 且 status 为 ok 的行,把每个…
编程:PIN 暴力匹配
/challenge/vault.json 是每次容器启动都会用随机数据重新生成的金库记录,其中有 salt(十六进制字符串)和 pin_hash = sha256(salt + pin)(把 salt 与 6 位 pin…
编程:哈希计算
请分析每次启动时随机生成的证据文件 artifact-manifest.json。每个 artifact(artifact_00 到 artifact_09)有多条记录(name、sha256、data),只有 data 经…
编程:二进制 TLV 解析
/challenge/capture.bin 是每次容器启动都会用随机数据重新生成的自定义二进制文件。开头 4 字节为 KBIN,之后是 TLV 记录(type 1 字节、length 2 字节大端、value),type…