AliCTF 2026 Final Crypto - Kitten Sign

SUBGROUPX Repo: https://github.com/n-WN/SubgroupX 三重签名验证(RSA + ECDSA + SM2)保护的 cat /flag.txt 命令。需要逐层攻破:RSA 通过 genus-2 Jacobian 上的 GCD 泄漏分解模数;ECDSA 通过 fastecdsa 的浮点解析漏洞绕过;SM2 通过无哈希通用伪造 + BKZ 格构造同余消息 + invalid-curve oracle 恢复私钥。0 solve。
Read more
March 8, 2026

SSH Public Key

这里放当前可用于加入 authorized_keys 的 SSH 公钥。 / Raw URL Copy public key Raw URL: https://i.cauchy.top/keys/id_25519_akdk.pub Fingerprint: SHA256:F2BIJYZlOwsImHLKl7tcmDyESkT/IUo8XnkTL1d27xw ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOkNHm/JN7O+ZjbeZbXma0XLcYTf+mrURpOoXBYdZZMW [email protected] curl -fsSL https://i.cauchy.top/keys/id_25519_akdk.pub curl -fsSL https://i.cauchy.top/keys/id_25519_akdk.pub >> ~/.ssh/authorized_keys
Read more

AliCTF 2026 Web - next-challenge · React2Shell 机制梳理

SUBGROUPX Repo: https://github.com/n-WN/SubgroupX 日期: 2026-02-05 / 环境: http://223.6.249.127:28433 / 技术栈: Node.js v20.19.6 alpine x64, Next.js 16.0.6 dev, React 19.2.0 / 题目类型: Web, 500 pts / 结论 通过 React Flight 反序列化触发 server reference,加上 Hello() 的模板字符串 toString sink,实现了不依赖 constructor/__proto__/prototype 的 RCE,最终读取 flag:
Read more

AliCTF 2026 Crypto - Griffin

SUBGROUPX Repo: https://github.com/n-WN/SubgroupX Griffin 这题的关键是 Phase1 恢复的 $x$ 存在仿射不确定性,导致 Phase2 求根得到的是 $x = a m + b$ 而不是 $m$,需要对 $(a,b)$ 做 affine 枚举。 / 结论 flag: alictf{**} 关键坑点: Phase1 恢复的 $x$ 存在仿射不确定性,导致 Phase2 求根得到的是 $x = a m + b$ 而非 $m$,必须做 affine 枚举,最终命中 $(a,b)=(-1,256)$ Full solve code (gist) 复现参数 以下数值来自一次成功复现的检查点和附件内容:
Read more
February 3, 2026

AliCTF 2026 线上赛 Web - staircase

SUBGROUPX Repo: https://github.com/n-WN/SubgroupX 这题最终落地利用点是 MapDB 的 linked record:把 payload 分散种在多段 icon 记录里,再通过极少量元数据 patch 把 “icon” 指向链表头,最后 GET /files/icon 触发 Serializer.JAVA 反序列化完成 RCE。 / 题目信息 题目:staircase 分值:500 目标:拿到 flag{...}(flag 文件位于容器根目录 /flag-<random>.txt) 远程:题面端口会变更,需要以最新为准(本文最终打通的是 tcp *.*.*.*:*,HTTP 服务) hint: 远程环境不出网 MapDB 支持“链表式”记录(linked record)存储/读取,用于巨型记录 最终结论 本地已打通 本题最终落地利用链不再依赖“用受限写原语合成任意字节串”,而是:
Read more

N1CTF Junior 2026 1/2

SUBGROUPX Repo: https://github.com/n-WN/SubgroupX 解了几道分数较高的题目,部署后继续修复公式渲染(theme/模板问题)。 / AstralCat 服务端每轮随机 99 字节 message,用 Luo Shu 做 CBC。关键点是同一个对象连续调用两次 Encrypt(),第二次加密的输入其实是第一次的密文。
Read more

XCTF Lilac 2026 Writeup

SUBGROUPX Repo: https://github.com/n-WN/SubgroupX 整理版汇总:按仓库内文档与脚本串主线,每题只保留关键思路和 exp 核心片段(截图已脱敏)。 / 整理说明 本文按仓库内文档与脚本整理,每题只保留解题主线与 exp 核心片段。 文中用 HOST:PORT 代替真实地址,flag 统一写为 LilacCTF{...},不包含外链 URL 与真实 IP。
Read more

XCTF Lilac - launchpad

SUBGROUPX Repo: https://github.com/n-WN/SubgroupX XCTF Lilac 的 Solana/Anchor misc。核心是 ClaimRequest 与 Faucet 绑定关系校验缺失,并结合 no_pda=true 的绕过手法,最终一次性把 vault 清空。 / 题目附件:/_p/67efe178c3919b1ea379da0869983aa081d7769aaac76d1a073926a489beca49.tar.gz / 题目信息 类型:Solana / Anchor(misc) 远程:1.95.144.176:9990 交互:PoW → 上传 solve.so → 提交 Vec<Instruction>(服务端只用 user 一把私钥签名交易) 目标:让 ATA(global_pda, fee_mint)(同时也是 faucet vault)余额变成 0,服务端打印 flag 这题本质是一个 “ClaimRequest 与 Faucet 绑定关系校验缺失” 的逻辑漏洞:程序只验证 ClaimRequest 的 PDA 是正确的,但没有验证 ClaimRequest 属于当前正在处理的 faucet,导致可以用“别的 faucet 的 ClaimRequest”去领“当前 faucet 的钱”。
Read more
January 20, 2026

年度总结 - 2025

自从接触到工作,记忆节点似乎就由工作为 key,其余为 value,所以本篇 blog 的时间线基本都是由工作发散的
Read more
October 30, 2025

XCTF Final 2025 部分题解

1 / 一直懒得整理(