1392081456/ctf-notes

GitHub: 1392081456/ctf-notes

这是一个深入的CTF解题笔记仓库,覆盖二进制、逆向、密码学、Web和取证领域,专注于方法论和利用陷阱的学习。

Stars: 0 | Forks: 0

# ctf 笔记 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ![Language](https://img.shields.io/badge/lang-EN-blue) ![Topics](https://img.shields.io/badge/topics-pwn%20|%20reverse%20|%20crypto%20|%20web%20|%20forensics%20|%20labs-red) ## 关于本仓库 这些是我参与公开 CTF 平台(BUUCTF、SCTF、NSSCTF、NewStarCTF 等)挑战后重建的解题笔记。它们作为个人技术参考而编写,也用于分享那些已被公开记录多年的方法论。 每篇解题笔记都遵循相同的结构: 1. **文件概述** — 保护机制、libc 版本、远程端点 2. **漏洞分析** — 哪里出了问题以及为什么 3. **利用路径** — 原语链 4. **完整利用** — 带注释的 payload 脚本 5. **陷阱/经验教训** — 让我耗费数小时的坑以及不同的处理方式 ## 作者 拥有对抗性机器学习同行评审出版物的安全研究人员。 DOI: [10.3778/j.issn.1002-8331.2311-0227](https://doi.org/10.3778/j.issn.1002-8331.2311-0227) CTFtime: [@colorfulwhitez](https://ctftime.org/user/colorfulwhitez) (队伍 APWN) ## 索引 ### Pwn (二进制漏洞利用) - [axb_2019_heap — 格式化字符串泄露 + unsafe unlink → BSS 自引用](pwn/axb2019_heap.md) — glibc 2.23 / unsafe unlink / `__free_hook` 劫持 - [axb_2019_brop64 — ret2libc 与 libc 替换陷阱](pwn/axb2019_brop64.md) — glibc 版本检测 / Partial RELRO ret2libc - [SCTF 2019 easy_heap — null 字节 off-by-one → tcache 投毒 → mmap shellcode](pwn/sctf2019_easy_heap.md) — glibc 2.27 / consolidation 泄露 / RWX 页面 - [ACTF 2019 — babyheap: UAF + tcache 复用 + printf %s GOT 泄露](pwn/actf2019_babyheap.md) — glibc 2.27 / system@PLT 预解析 / 无需 libc 泄露 - [ACTF 2019 — babystack: 栈迁移 ret2libc](pwn/actf2019_babystack.md) — 16 字节溢出 / 栈地址泄露 / leave;ret 迁移 - [CISCN 2019 — n_3: 32 位 tcache UAF + strbuf 覆写](pwn/ciscn2019_n_3.md) — 记录结构体函数指针 → `system("sh;#")` - [NPUCTF 2020 — easyheap: off-by-one 重叠 ×2](pwn/npuctf2020_easyheap.md) — 泄露 + 写原语 / `__free_hook` 劫持 - [SUCTF 2018 — stack: 经典 ret2win 后门](pwn/suctf2018_stack.md) — `system("/bin/sh")` gadget / +1 栈对齐 ### 逆向工程 - [WMCTF 2020 — easy_re: 解包 PerlApp 二进制文件](reverse/wmctf2020_easy_re.md) — PerlApp BFS 资源提取 - [SCTF 2019 — creakme: AES-CBC、Base64 和 SEH 自解密节](reverse/sctf2019_creakme.md) — 多层 crackme - [王鼎杯 2020 青龙 — jocker: SMC 与栈指针修复](reverse/wangdingcup2020_jocker.md) — 自修改代码分析 - [长城杯 第三届 — vvvmmm: UPX + 嵌入 Unicorn 的 RISC-V 虚拟机](reverse/changcheng3_vvvmmm.md) — 硬编码密钥多项式哈希驱动 12 个流字与用户输入异或;陷阱是 `UC_RISCV_REG` 枚举偏移量(`0xb = X10 = a0`,而非 `a1`) ### 密码学 - [GUET-CTF 2019 — encrypt: RC4 + 偏移的 Base64 字母表](crypto/guetctf2019_encrypt.md) — 自定义编码组合 - [GKCTF 2021 — XOR: 从 XOR + 乘积恢复素因子](crypto/gkctf2021_xor.md) — Hensel 式提升 / 乘积范围剪枝 / 比特反转耦合 - [MRCTF 2020 Easy_RSA — 从 `φ(n)` 和 `e·d` 分解 `n`](crypto/mrctf2020_easy_rsa.md) — 两阶段 Vieta 归约 / 小 k 暴力破解 - [LitCTF 2025 — math: RSA `hint = (p+noise)(q+noise)` 泄露](crypto/litctf2025_math.md) — 对 `hint−n` 使用 Pollard rho 以恢复 40 位噪声 / Vieta 关联到 `p, q` - [XCTF 第九届决赛 — Tch3s: 可预测的 `srand(time())` 种子](crypto/xctf2025_tch3s.md) — 从测试 1 的明文暴力破解 Unix 时间戳种子,然后通过 gdb-python 将恢复的密钥注入二进制文件并调用其自身的解密函数 - [GHCTF 2025 — baby_signin: e=4 非互质 AMM 根提取](crypto/ghctf2025_baby_signin.md) — 通过 AMM 的平方根注册 - [GHCTF 2025 — EZ_Fermat: 多项式 GCD RSA 分解](crypto/ghctf2025_ez_fermat.md) — 费马小定理 / `Z/n` 上的多项式 GCD - [GHCTF 2025 — MIMT_RSA: 中间相遇 36 位复合密钥恢复](crypto/ghctf2025_mimt_rsa.md) — 乘法同态 MITM - [UTCTF 2020 — basic-crypto: 4 层编码洋葱](crypto/utctf2020_basic_crypto.md) — 二进制 → Base64 → ROT10 → 替换 - [杨启倍 2025 — big_e_rsa: 艾森斯坦整数 RSA](crypto/yangqibei2025_big_e_rsa.md) — 艾森斯坦素数 / 浮点 `d` 恢复 ### Web 漏洞利用 - [Drupalgeddon2 — CVE-2018-7600 渲染数组 RCE](web/drupalgeddon2_rce.md) — Drupal 8 / Form API AJAX / `#post_render` 注入 - [GYCTF 2020 Ez_Express — Unicode 大小写折叠 + EJS 原型污染](web/gyctf2020_ez_express.md) — Node.js / `outputFunctionName` 注入 / `U+0131` 过滤器绕过 - [王鼎杯 2020 玄武 SSRFMe — Gopher → Redis webshell](web/wangdingbei2020_ssrfme.md) — SSRF / `0.0.0.0` 绕过 / 双重 URL 编码 - [CISCN 2019 Dropbox — PHP Phar 反序列化 + POP 链](web/ciscn2019_dropbox.md) — `__call` 桥接 / `GIF89a` 占位符 / `file_exists` 触发 - [DASCTF 2023 EzFlask — 通过 `__globals__` 的 Python 类污染](web/dasctf2023_ezflask.md) — Flask / 递归合并 / `__file__` 覆写 - [CISCN 2019 东南赛 — double_secret: Flask RC4 泄露 + Jinja2 SSTI RCE](web/ciscn2019_double_secret.md) — 调试页 RC4 / SSTI 命令执行 - [CISCN 2019 决赛 — easyweb: `\0` 引号消耗 SQLi + Cookie XOR 伪造 + 日志 shell](web/ciscn2019_easyweb.md) — 多阶段链 - [GHCTF 2025 — EZ_readfile: MD5 强碰撞 + 文件读取](web/ghctf2025_ez_readfile.md) — `docker-entrypoint` 信息泄露 - [GHCTF 2025 — SQL: 严格 WAF 下的 UNION 注入](web/ghctf2025_sql.md) — 绕过所有函数调用的直接列名猜测 - [LitCTF 2025 — easy_file: PHP LFI + 上传链](web/litctf2025_easy_file.md) — 静默 WAF 基线 / `
标签:BUUCTF, CTF平台, exploit开发, glibc漏洞利用, GOT覆盖, meg, NewStarCTF, NSSCTF, pwn, ret2libc, SCTF, shellcode, tcache攻击, web安全, 二进制分析, 云安全运维, 云资产清单, 信息安全, 取证, 堆溢出, 学习笔记, 密码学, 对抗性机器学习, 手动系统调用, 方法论, 栈溢出, 格式化字符串, 网络安全, 请求拦截, 逆向工程, 隐私保护