挑战一览

清除筛选

126 题 (第 5 / 6 页)

编程难度 4★★★★☆

编程:异步扫描器

/challenge/scan-events.jsonl 是每次容器启动都会用随机数据重新生成的异步端口扫描器事件记录(行顺序是乱的,部分事件重复)。对 state 事件,每个 (host, port) 中 t…

数字取证难度 4★★★★☆

从内存提取恶意软件载荷

`/challenge/memstrings.txt` 是从可疑进程地址空间中提取的字符串,加载器解开的第二阶段载荷(Base64)混在诱饵字符串和诱饵 Base64 之中。`/challenge/malfind_region.txt`…

数字取证难度 4★★★★☆

从内存检测隐藏的内核模块

从疑似感染 LKM rootkit 的 Linux 主机内存中恢复出三份模块信息。`/challenge/modules_list.txt` 是内核 modules 链表(相当于…

数字取证难度 4★★★★☆

解读多阶段隐写

`/challenge/cover.png` 和 `/challenge/notes.txt` 中埋设了三个阶段的隐写。每个阶段都包含读取下一阶段所需的密钥(口令或符号对应表),密钥每次启动都会变化,因此无法跳过中间阶段。请依次分析…

数字取证难度 4★★★★☆

恢复碎片化的 JPEG 文件

`/challenge/fragments/` 中有从存储卡未分配空间回收的 256 字节簇(`clus_NNNN.bin`)。编号与原始顺序无关,还混有其他相机的照片和垃圾数据。请根据 JPEG 的结构(标记长度、DRI 和…

密码学难度 4★★★★☆

密码分析:DSA nonce 复用导致的私钥恢复

每次启动都用新密钥生成的 /challenge/signatures.json 中包含 DSA 公开参数(p 为 1024 位,q 为 160 位,以及 g、y)、4 份签名(message、h、r、s,其中 h 是…

密码学难度 4★★★★☆

密码分析:RSA 的 Wiener 攻击

某嵌入式设备团队为了加快解密,把 RSA 私钥指数 d 设得非常小。`public_key.txt` 中的公开指数 e 几乎与 n 一样大。请从 e/n 的连分数展开求出 d,解密 `ciphertext.txt` 并取出旗标。

密码学难度 4★★★★☆

密码分析:恢复线性同余生成器的参数

某服务用参数 a、c、m 均保密的线性同余生成器 `x_{k+1} = (a×x_k + c) mod m` 同时生成会话令牌和加密密钥流。请从 `tokens.txt` 中连续的 10 个输出恢复 a、c、m,再解密用后续输出(每个…

数字取证难度 4★★★★☆

恢复损坏的 RAID5 阵列

文件服务器 fs01 的 RAID5 阵列 `/dev/md0`(4 块盘)因成员 sdd 故障而无法组装。`~/evidence/` 中有各成员的镜像(`sdb.img`、`sdc.img`、`sde.img`,空的…

数字取证难度 4★★★★☆

关联多个日志以重建攻击场景

`/challenge/web.log`、`/challenge/auth.log` 和 `/challenge/db.log` 中记录了混在大量正常通信里的同一次入侵。请从对 Web…

数字取证难度 5★★★★★

重建 APT 攻击的全部阶段

四个日志 `/challenge/edr_process.log`、`proxy_http.log`、`dns_queries.log` 和 `dlp_transfer.log` 中,APT 攻击混杂在大量正常记录里。…

数字取证难度 5★★★★★

破解 BitLocker 加密驱动器

用安全的元数据 fixture 学习 BitLocker 恢复密钥的验证。bitlocker.img 不是真实卷。请将候选密钥的 SHA-256 与记录的摘要比对以确定恢复密钥,再用该密钥解密受保护的载荷。

数字取证难度 5★★★★★

提取 Bitcoin 交易中隐藏的消息

受害者把赎金支付到了比特币地址 `bc1qr4nsmw4r3pay7hzfx0d9cq3vkt8e6m5ljgs2ua`。`/home/ctfuser/evidence/transactions.json`…

数字取证难度 5★★★★★

从 IoT 设备固件提取秘密密钥

分析网络摄像头 KNC-CAM-2000 的更新文件 `/home/ctfuser/evidence/firmware.bin`(不要连接真实设备)。厂商把 rootfs 加密后分发,解密由引导程序在启动时完成。头部与分区表的格式见…

编程难度 5★★★★★

高级 Python:还原并发事件 DAG 因果关系

`events.jsonl` 混合了多个服务和 trace 的乱序事件。从标记的 auth.failed 事件出发,沿 parent 引用的因果 DAG,按逻辑时钟连接可达的 worker.decrypt 片段。

网络安全难度 5★★★★★

网络分析:重组 IPv4 重叠分片

`fragments.pcap` 中 IPv4 ID `0xbeef` 的 UDP 数据报有重叠分片,后到的分片会覆盖部分先到数据。请按到达顺序优先后到数据进行重组,再从 UDP 有效载荷中的 Base64 数据恢复旗标。

数字取证难度 5★★★★★

从虚拟机监控器内存提取 VM 信息

分析 KVM 主机的内存转储 `/home/ctfuser/evidence/kvm_host.dump`。来宾被配置成类似 AMD SEV 的方式,内存按每个 VM 用各自的密钥加密,但这台主机运行的是 KVM…

编程难度 5★★★★★

编程:APT 模拟

/challenge/events.jsonl 是把多个主机收集到的安全日志合并而成的文件,每次容器启动都会用随机数据重新生成(行顺序是乱的)。ts 是 ISO 8601…

编程难度 5★★★★★

编程:AI 漏洞检测

/challenge/corpus/*.py 是每次容器启动都会用随机数据重新生成的代码审计用 Python 源码(请不要执行)。每个函数都带有 @audit_id(6 位十六进制)。如果函数以 shell=True 调用…

编程难度 5★★★★★

编程:AWS 渗透测试

/challenge/iam.json 包含用户、组和策略,/challenge/s3_objects.json 是 S3 对象列表(bucket、key、etag),两者都会在每次容器启动时用随机数据重新生成。请按 README.md…

编程难度 5★★★★★

编程:IoT 固件解析

请分析每次启动时随机生成的网络摄像头固件镜像 firmware.bin(不含可执行代码)。格式依次为:开头的 `KFW2`(4 字节)、分区数量(uint16)、分区表(name:16 字节,以 NUL…

编程难度 5★★★★★

编程:覆盖率引导模糊引擎

请分析每次启动时随机生成的覆盖率引导模糊测试器运行记录 coverage-queue.jsonl(不会运行目标程序)。每行形如 `{"id": ..., "t": ..., "edges": [{"edge": ..., "hits":…

编程难度 5★★★★★

编程:零点击消息分析

messages.ndjson 是每次启动时用随机数据生成的消息应用通信记录(位于 /challenge)。每行是一个分片(message_id、frag_index、frag_count、payload_hex),多个消息的分片混在一起…

编程难度 5★★★★★

编程:时序攻击数据分析

timings.csv 是每次启动时用随机数据生成的时序攻击原始测量值(位于 /challenge)。针对逐字符比较秘密十六进制字符串的服务器,文件记录了在每个位置(position)发送候选字符(candidate,0 至…