挑战一览
Python 自动化:分析 SQLite 数据库
请分析每次启动时生成的 data.db(SQLite,含 users / orders / audit_log)。按 user_id 对 orders 做 SUM(amount) 聚合,找出订单总额最高的前 3…
Python 自动化:解密自定义密码
`cipher.txt` 以十六进制保存经自定义密码加密的旗标。加密逐字节执行 add(密钥加法)-> xor(位置相关)-> rotl(循环移位);请按逆序实现解密。完整规格见 `python3 challenge.py`。
Python 自动化:破解加密 ZIP 密码
每次启动都会生成 /challenge/secret.zip。其中有 flag.txt 和 readme.txt,使用 ZipCrypto 加密。密码是 /challenge/wordlist.txt 中的一个词再加上两位数字(00 到…
算法:迷宫中的 BFS 最短路径
请用 BFS 求 `data.txt` 中从 S 到 E 的最短路径,并将 UDLR 移动序列输入 `challenge.py`。正确路径会显示启动时注入的 FLAG。
网络分析:802.1Q VLAN 隔离的流量
`capture.pcap` 是镜像交换机中继端口抓到的流量,多个 VLAN 的帧带着 802.1Q 标签混在一起。每个 VLAN 上都有同一台设备以 `MGMT|<片段>` 的形式向 UDP 5140…
网络分析:SNMP 信息泄露
捕获到一台使用弱 community string `public` 的 SNMPv2c 设备返回 GetResponse。请分析 `traffic.pcap` 中 SNMP(UDP/161)的 varbind,并从厂商 OID…
网络分析:SSL Strip 导致的明文凭据
SSL Strip 攻击将 HTTPS 降级为 HTTP,受害者凭据以明文传输并被捕获。请分析 `traffic.pcap` 中的明文 HTTP POST,提取登录密码(即旗标)。
网络分析:解除 WebSocket 帧掩码
`capture.pcap` 记录了浏览器与聊天服务器之间的 WebSocket 通信。客户端发往服务器的每一帧都用不同的 4 字节密钥做了掩码。请解析各帧并去掉掩码,把拆成三帧的消息重新拼起来,取出部署用令牌(旗标)。
网络分析:解码自定义协议
捕获到使用简易自定义二进制协议的系统流量。请从 `traffic.pcap` 分析 TCP 9999 端口上的帧结构,解码有效载荷并取得旗标。
编程:SQLite 证据库
evidence.db 是每次启动时用随机数据生成的 SQLite 数据库(位于 /challenge,包含 users / sessions / access_log 三张表)。对 trust_score 不低于 80…
编程:Web 抓取图遍历
site.json 是每次启动时用随机数据生成的抓取结果(位于 /challenge),包含 start 与 target 的 URL,以及每个页面的 url / links / fragment(Base64 片段)。请求出从…
编程:ZIP 密码恢复
secret.zip 是每次启动时创建的、用 ZipCrypto(传统 PKWARE 加密)加密的 ZIP(位于 /challenge,同目录有 wordlist.txt)。密码是 wordlist.txt 中的某一个词,后面再加 2…
编程:PCAP 文本分析
capture.txt 是每次启动时创建的数据包日志(位于 /challenge)。每行是一个流,格式为 flow=<名称> payload_hex=<十六进制>。将 payload_hex 与 0x5A 做 XOR 解密并还原…
编程:多线程结果重组
请分析每次启动时随机生成的并行任务结果日志 worker-results.jsonl。每个 slot 都被尝试了很多次,日志里还保留着超时(timeout)或被后续尝试取代(superseded)的结果。每个 slot…
编程:内存转储分析
请分析每次启动时随机生成的合成内存镜像 memory.img。开头的堆管理表(开头 8 字节 HEAPTBL + NUL、count(uint16)、条目(addr: uint32、size: uint16、flags:…
编程:已知明文密码分析
请分析每次启动时随机生成的证据文件 ciphertext.b64 和 known.txt。ciphertext.b64 是用仅含小写字母的短密钥(长度未知)对观测站报告做循环 XOR 后再 Base64 编码得到的,known.txt…
编程:自定义协议
protocol.bin 是每次启动时创建的二进制抓包文件(位于 /challenge),其中依次排列着若干以 KINO 开头、带长度字段的帧。从头依次遍历这些帧,把 type=3 的帧的 payload 与 0x23 做 XOR…
编程:图像隐写
image.pgm 是每次启动时创建的文本格式(P2)PGM 图像(位于 /challenge)。从头收集每个像素值的最低有效位(LSB),每 8 位合成一个字节,读到 NUL(值为 0 的字节)之前的内容就是旗标。旗标不会以明文存放。
高级 Python:执行自定义 VM 字节码
`program.kvm` 是自定义四寄存器 VM 的字节码。根据 README 的指令规格实现 Python 解释器,并恢复 VM 输出。
网络分析:从 TCP 还原 chunked 与 gzip 的 HTTP
`capture.pcap` 记录了在一条 TCP 连接上进行的两次 HTTP 交互。服务器发出的分段顺序被打乱,部分因重传而重复;第二个响应(`GET /api/export`)同时使用了 chunked 与 gzip。请重组 TCP…
网络分析:TCP 重传差分隐蔽信道
`capture.pcap` 中有 TCP 序列号相同的重传包。请仅提取有效载荷发生变化的重传,对每个重复序列号的两个单字节有效载荷做 XOR,并按序列号顺序拼接以恢复旗标。
二进制修复:固件头与 CRC32
修复 `firmware.bin`:将 byte 0-3 写为 `KINO`,并把 byte 12 之后数据的 little-endian CRC32 写回 byte 8-11。将修复文件交给 `challenge.py`…
编程:C2 通信分析
请分析每次启动时随机生成的合成日志 beacon.log(不需要网络连接)。多台主机(会话)的通信按时间顺序混在一起。每个会话在第一条 hello 中发送 nonce,该会话的密钥是 SHA-256(b"beacon-v1" +…
编程:缓冲区溢出崩溃报告分析
请分析每次启动时随机生成的崩溃报告 crash_01.txt 到 crash_06.txt(不含可执行代码)。每份报告都写有发送的输入本身(input:)和崩溃时的指令指针(32 位为 eip,64 位为 rip)。…