TheRealBastioul/SkillBit-July-2026-Flash-CTF
GitHub: TheRealBastioul/SkillBit-July-2026-Flash-CTF
SkillBit Flash CTF 2026 的完整 Writeup 仓库,对六道覆盖取证实战、密码学、二进制利用、Web 安全与逆向分析的安全竞赛题目进行了专业框架级别的技术分析。
Stars: 0 | Forks: 0
# SkillBit 2026 年 7 月 Flash CTF
[](https://compete.metactf.com/632/problems)


[](https://compete.metactf.com/632/problems)
比赛的工作目录。共解出六个 flag,涵盖
forensics/network, crypto, pwn, misc, web 和 forensics/rev。此文件是
高级索引 - 完整的技术分析报告(包含下文每行简述背后的完整
ATT&CK / Kill Chain / CWE / DREAD / CVSS / OWASP 分析)位于 `FLAGn/WRITEUP.md` 中。
## 评分方法
`FLAGn/WRITEUP.md` 中的每份报告都使用相同的框架对其发现进行评分,
并一致应用于所有挑战。如果某个框架确实不适合挑战的类型,报告中会
明确说明(附带原因),而不是默默省略:
- **[MITRE ATT&CK](https://attack.mitre.org/)** - 企业战术/技术矩阵。映射*对手的行为*:对于 FLAG1–5,这代表我们作为攻击者的行动;对于 FLAG6,则是恶意软件的观察行为(此处已明确指出框架设定,因为该挑战属于 DFIR,而非漏洞利用)。
- **[Lockheed Martin Cyber Kill Chain](https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html)** - 七阶段入侵模型(侦察 → 武器化 → 投递 → 漏洞利用 → 安装 → 命令与控制 → 目标行动)。对于特定挑战未观察到的阶段,会标记为 N/A 并说明原因,而不是直接省略。
- **[CWE](https://cwe.mitre.org/)** - 潜在的软件/协议弱点类别,这与 ATT&CK 的对抗行为框架不同。
- **DREAD** - 损害、可重现性、可利用性、受影响用户、可发现性,每项打分 1–10 并取平均值。通篇使用的评级区间为:**8.0–10.0 Critical · 6.0–7.9 High · 4.0–5.9 Medium · 0–3.9 Low。** DREAD 是一种威胁建模启发式方法,独立于 CVSS 进行评分,两者权衡的因素是有意设计得不同的(DREAD 侧重于漏洞利用/发现的难易程度,CVSS 侧重于实际影响),因此某个发现分别落在不同层级是预期之内的,并非不一致。
- **CVSS v3.1** - 标准 vector + base score,手动计算得出。
- **[OWASP Top 10:2025](https://owasp.org/www-project-top-ten/)** - 仅适用于唯一的 Web 挑战(Dyno / FLAG5);在其他地方省略,而不是用 N/A 行填充。
这些都不是真正被分配的分数或被跟踪的 ID,它们背后也没有任何
CVE,因为这里的每个目标都是自定义的 CTF 挑战代码
(或者对于 FLAG6,是作为 DFIR 证据的培训产物)。它们纯手工计算,
完全是以专业安全评估的方式来描述每一项发现。
## Flags 概览
分为三个表格(身份、严重性、威胁映射),以便每个表格保持
足够窄的宽度,阅读时无需横向滚动。三者共享相同的 `#`
列,完整细节(完整的 ATT&CK 技术名称、CWE 原理、Kill
Chain 注释)位于每个 `FLAGn/WRITEUP.md` 中。
**身份**
| # | 挑战 | 分类 | Flag | 分析报告 |
|---|---|---|---|---|
| 1 | NetBIOS hostnames |  | `SkillBit{n3tbi0s_dc0de_t0_w1n}` | [FLAG1/WRITEUP.md](FLAG1/WRITEUP.md) |
| 2 | babyecc |  | `SkillBit{R3u51ng_n0nc3_4nd_c0nn3ct1on?!?!}` | [FLAG2/WRITEUP.md](FLAG2/WRITEUP.md) |
| 3 | heaps-of-fun |  | `SkillBit{r3t2w1n_m0r3_l1k3_r3t2fun}` | [FLAG3/WRITEUP.md](FLAG3/WRITEUP.md) |
| 4 | EvilEval |  | `MetaCTF{S4f3_3v4l_1s_4_Mu5t_1337}` | [FLAG4/WRITEUP.md](FLAG4/WRITEUP.md) |
| 5 | Dyno |  | `MetaCTF{Dyn0_3xpl0it_C5P_t0_X55}` | [FLAG5/WRITEUP.md](FLAG5/WRITEUP.md) |
| 6 | karsten |  | `SkillBit{d232462e9efefa9ac017b211c3564989}` | [FLAG6/WRITEUP.md](FLAG6/WRITEUP.md) |
**严重性**
| # | CVSS v3.1 | DREAD | CWE |
|---|---|---|---|
| 1 |  |  | [CWE-200](https://cwe.mitre.org/data/definitions/200.html) |
| 2 |  |  | [CWE-338](https://cwe.mitre.org/data/definitions/338.html) |
| 3 |  |  | [CWE-862](https://cwe.mitre.org/data/definitions/862.html), [CWE-787](https://cwe.mitre.org/data/definitions/787.html) |
| 4 |  |  | [CWE-95](https://cwe.mitre.org/data/definitions/95.html), [CWE-693](https://cwe.mitre.org/data/definitions/693.html) |
| 5 |  |  | [CWE-915](https://cwe.mitre.org/data/definitions/915.html), [CWE-79](https://cwe.mitre.org/data/definitions/79.html), [CWE-639](https://cwe.mitre.org/data/definitions/639.html) |
| 6 |  |  | N/A* |
**威胁映射**
| # | Kill Chain | ATT&CK TTPs | OWASP Top 10:2025 |
|---|---|---|---|
| 1 | 仅侦察 | [T1018](https://attack.mitre.org/techniques/T1018/) | - |
| 2 | 侦察→武器化→漏洞利用→目标行动 | [T1552.004](https://attack.mitre.org/techniques/T1552/004/), [T1110](https://attack.mitre.org/techniques/T1110/) | - |
| 3 | 侦察→武器化→投递→漏洞利用→目标行动 | [T1190](https://attack.mitre.org/techniques/T1190/), [T1068](https://attack.mitre.org/techniques/T1068/) | - |
| 4 | 侦察→武器化→投递→漏洞利用→目标行动 | [T1059.006](https://attack.mitre.org/techniques/T1059/006/), [T1110](https://attack.mitre.org/techniques/T1110/) | - |
| 5 | 侦察→武器化→投递→漏洞利用→目标行动 | [T1190](https://attack.mitre.org/techniques/T1190/), [T1059.007](https://attack.mitre.org/techniques/T1059/007/), [T1539](https://attack.mitre.org/techniques/T1539/) | A01, A02, A05, A07 (2025) |
| 6 | 有证据的投递→C2→目标行动;其余为推断/超出范围 | [T1027](https://attack.mitre.org/techniques/T1027/), [T1036.005](https://attack.mitre.org/techniques/T1036/005/), [T1573.001](https://attack.mitre.org/techniques/T1573/001/), [T1571](https://attack.mitre.org/techniques/T1571/), [T1041](https://attack.mitre.org/techniques/T1041/) | - |
\* karsten (#6) 是一项针对已被入侵主机的 DFIR/恶意软件分析练习,
而不是我们利用的漏洞:CWE 对合法软件中的弱点进行分类,
而不是针对恶意产物本身,并且没有可计分的 CVSS 漏洞可供引用。
它的 Kill Chain 和 DREAD 行描绘的是恶意软件自身观察到的行为/威胁,
有关完整的推理和恶意软件的 ATT&CK TTPs,请参阅分析报告。
OWASP Top 10:2025 映射仅适用于唯一的 Web 挑战
(Dyno);“-”表示不适用于该挑战的类别。
## 挑战摘要
**1. NetBIOS hostnames** (forensics/network) - 两个 RFC 1001
第一级编码的 NetBIOS 名称(`FLAG1/FlagBIOS.txt`)。将
nibble-pair 编码解码回 ASCII,剥离 NetBIOS 的 `0x00` 填充,
连接两个名称以获得 flag。无需漏洞利用 - 有关解码方法,请参阅分析报告。
**2. babyecc** (crypto) - ECDSA 服务器用 `int(time.time())` 为 Python 的 `random`(Mersenne Twister,而非 CSPRNG)生成种子,
并将其用于签名 nonce。在连接时间周围暴力破解了约 1 分钟的
种子窗口,重新计算 nonce,通过单个签名解出私钥,
并根据发布的公钥进行了验证。`FLAG2/exploit.py`。
**3. heaps-of-fun** (pwn) - 无 PIE、无 canary 的 C++ 二进制文件。对“New role”字段未校验的
`atoi()` 允许任何用户自我提升为管理员;随后的
管理员菜单在读取“audit note”时将其放入没有边界检查的
栈缓冲区中。粉碎保存的返回地址,直接跳转到
打印 `/flag` 的 `win()` gadget。`FLAG3/exploit.py`。
**4. EvilEval** (misc/pwn) - 实际上不是沙箱逃逸:服务器
对经过过滤的输入执行 `eval()` 并将其与固定的 secret 进行比较。黑名单
阻止了数字和大多数关键字,但没有阻止 `len()` 或字符串字面量,
因此任何候选整数都可以表示为不带数字的 `len('x'*N)`。在连接过程中
暴力破解了 N=0..254。`FLAG4/exploit_stdlib.py`。
**5. Dyno** (web) - 在关键变量已经构建完成后执行的
`extract($_GET)`/`extract($_POST)` 允许攻击者控制的请求参数
覆盖 页面的 CSP 字符串以及 新建配置文件的主键。
将 CSP 中和与存储型 XSS 配置文件名称串联起来,将审核
机器人的 session cookie 窃取到攻击者指定的配置文件中,然后将其读回。
`FLAG5/exploit.py`。
**6. karsten** (forensics/rev) - 被木马化的“Chrome updater”入侵的
工作站的冻结内存转储 + 数据包捕获。从 minidump 的内存区域中重建了
恶意软件的 .NET PE 模块,手动反汇编了其被 ConfuserEx 混淆的
IL(使用 `dnfile`/`dncil`,因为没有可用的 `dotnet`)
以还原出精确的手写 20 轮 Feistel 密码,然后使用从
仍然驻留的配置 blob 中恢复的会话密钥,解密了从 pcap 中提取的
48 字节 C2 渗透 payload。`FLAG6/exploit.py`。
评分框架由人工计算用于特征 - 请参阅上文的 评分方法。这里的条目均非真实受 CVE 跟踪的发现。
标签:Web安全, Writeup, 云资产清单, 取证, 安全竞赛, 密码学, 手动系统调用, 蓝队分析, 逆向工具, 逆向工程