Douyin iOS Lynx CTF
本页不保存手机路径。每台手机、每次重装都要在当前安装中重新执行 Stage 1。
1. 在这台手机上尝试写入 Lynx
确认 SecLink(如果出现),等待页面进入 m.douyin.com;然后回到本页。进入 m.douyin.com 只代表竞态已发起,不等于写入已验证。
2. 尝试加载这台手机当前安装中的 Lynx
第二步使用公开注册的 lynxview scheme 和 only_local=1;它不会复用其他手机的文件,也不会从 Pages 补下载模板。
3. 无 Lynx、同原语:测试 Protected Native 弹窗
第三步复用第一步的 BDX non-main/commitURL 时序,但调用无持久化的 Protected x.showModal。若出现标题 CODEX BDX 26.4 RACE,说明上游竞态仍生效,失败点在写入或 Lynx 之后;没有弹窗只能判定未命中,不能单凭肉眼宣称已修复。
4. 无 Lynx、另一条链:直接测试 x.request canary
第四步使用 IESPiper V3 retained-frame 链请求受控同域 canary;成功会显示完整的非敏感 callback。它与第一、三步的 BDX commitURL 链不同,因此失败不能单独证明 BDX 竞态已修复。
5. 无 Lynx、同原语:BDX x.request 服务端验证
第五步与第一、三步使用相同的 BDX non-main/commitURL 时序,只请求本站受控 canary。顶层 commit 会销毁 callback hook,因此按唯一 run ID 从服务端确认;不会读取或记录账号响应。