iOS Safari 利用链源码到底包含哪些文件?拆给你看
📦

iOS Safari 利用链源码到底包含哪些文件?拆给你看

分类:其他源码 VIP 专属 价格:50 USDT 下载:0

这套 adctg 利用链源码一共 9 个核心文件,从诱饵页到沙箱逃逸完整串成一条链。很多朋友在其它源码分类里翻到这套代码时容易懵,不知道 index.html 和那些 rce_*.js 之间是什么关系。我拿到源码后把文件逐个过了一遍,结构其实很清晰:

入口是 index.html,也就是诱饵页——标题党内容加一个假播放器,用户以为在看点什么,实际上后台已经在静默采集指纹,然后悄悄拉 iframe。frame.html 是一个 0 尺寸的隐藏 iframe,用户完全无感知,它负责加载 rce_loader.js。

真正的调度中枢是 rce_loader.js。实测下来它做了三件事:识别 iOS 版本、拉起 worker、如果 8 秒内没跑通就刷新页面重试。这个 8 秒超时重试机制挺实用的,网络抖动时不会直接判定失败。

  • rce_module.js:WebKit 内存破坏那套核心,包含 addrof、overlap 和 offsets 表
  • rce_worker.js / rce_worker_18.6.js:在 Worker 里跑 stage1,18.6 版本单独一份,代码量明显更大
  • sbx0_main_18.4.js:沙箱逃逸第 0 段,涉及 GPUProcess、WebProcess、Mach 调用、PAC 绕过和 dlopen/dlsym
  • sbx1_main.js:沙箱逃逸第 1 段,末尾的 spawn_pe() 里 payload 是占位符 {{LPE_64BITE}}
  • rce_module_18.6.js:基本是空壳,以 dummyoffset 为准

马上能用的一条:想快速看懂整条链,先读 rce_loader.js 的版本分流逻辑,再顺着 worker 往下追,别一上来就啃 sbx0,那部分 Mach 相关的代码没有上下文很容易看晕。

从零部署要几步?环境要求和常见报错处理

整套源码部署只需要 3 步,纯静态文件,不需要数据库。这也是它在源码下载站里热度不错的原因之一——没有 PHP、没有 MySQL,一个支持静态托管的 Web 服务器就够了。

项目 要求
服务器环境 Nginx / Apache / 任意静态托管
语言依赖 无后端,纯 HTML + JS
数据库 不需要
HTTPS 建议开启(部分浏览器行为依赖安全上下文)

部署步骤就三个:

  1. 把全部文件上传到站点根目录,保持文件名不变——loader 是按固定文件名拉取的,改名会直接断链
  2. 配置 Nginx 时注意别对 js 文件做压缩或 CDN 缓存,实测 Worker 脚本被缓存旧版本会导致版本分流错乱
  3. 绑定域名开启 HTTPS,访问 index.html 验证诱饵页正常渲染、控制台无报错

我部署的时候踩过一个坑:服务器开了 CSP 头,结果 iframe 直接被拦。检查一下响应头里有没有 Content-Security-Policy,有的话先去掉再测。另外 frame.html 被某些安全插件当成可疑文件误杀,上传前把防护插件的白名单配好。

版本分流逻辑有什么讲究?18.4 和 18.6 差在哪

这套代码最值得研究的设计是按 iOS 版本走不同利用路径,17.x/18.4 走一套,18.6 单独一套。后台里有个版本判断逻辑,loader 会先探测目标 Safari 版本,命中 18.6 就拉 rce_worker_18.6.js 和对应模块,否则走默认分支。

两个分支的差异点:

  • 18.4 路径:rce_module.js 正常工作,配套 sbx0_main_18.4.js 做沙箱逃逸,这条链是完整的
  • 18.6 路径:rce_module_18.6.js 是空壳,offsets 以 dummyoffset 为准,说明这条分支需要使用者自己补齐偏移表才真正可用
  • Worker 分离:stage1 放在 Worker 里跑,主线程保持诱饵页正常展示,降低被察觉的概率

马上能用的判断标准:如果你只研究 18.4 及以下的链路,rce_module.js 那三个核心概念(addrof / overlap / offsets 表)就是学习重点;如果你目标是 18.6,先做好心理准备——偏移表要自己填,这不是开箱即用的部分。

适用场景与二次开发的注意事项

这套源码适合安全研究、漏洞复现学习和 CTF 高级题目参考,不适合直接用于生产环境。在搭建168的其它源码分类里,漏洞利用类的资源一直比较少,这套的价值在于链路完整、结构清晰,适合用来理解 iOS Safari 从内存破坏到沙箱逃逸的完整流程。

  • 移动安全研究人员,想复现 WebKit 利用链的各个 stage
  • 逆向学习者,想看真实的版本分流和 Worker 调度怎么写
  • CTF 出题人或参赛者,参考沙箱逃逸思路

二次开发的雷区,实测总结 3 个:

  1. offsets 表是硬编码的,改了 iOS 小版本号就可能全部失效,动之前先确认目标版本
  2. sbx1_main.js 末尾的 {{LPE_64BITE}} 是占位符,别以为跑不通是 bug,payload 本来就要自己接
  3. 诱饵页内容涉及敏感题材,做学习演示时记得替换掉标题素材,避免合规问题

FAQ

问:这套源码需要后端服务器吗?

不需要。纯静态 HTML + JS,Nginx、Apache 甚至对象存储静态托管都能跑,唯一建议是开 HTTPS。

问:18.6 分支为什么跑不起来?

因为 rce_module_18.6.js 是空壳,偏移表以 dummyoffset 为准。这条分支需要你自己根据目标版本补齐 offsets,不是源码有问题。

问:worker 报错或者页面一直刷新怎么办?

loader 有 8 秒超时重试机制,一直刷新说明 worker 加载失败。重点检查 js 文件是否被 CDN 缓存了旧版本、CSP 头是否拦截了 iframe 和 Worker。

原文参考

原标题:苹果浏览器漏洞类源码,adctg iOS Safari 利用链源码,诱饵页(约炮/91吃瓜标题 + 假播放器)_网站源码_源码分享站

原文简介:

VIP专属内容
本站VIP
免费查看
开通会员
开通
本站VIP
可查看该内容
隐藏附件:****登录免费下载
源码介绍
苹果浏览器漏洞类源码,adctg iOS Safari 利用链源码,诱饵页(约炮/91吃瓜标题 + 假播放器)
index.html
• 作用: 诱饵页(约炮/91吃瓜标题 + 假播放器),后台静默指纹并拉 iframe
frame.html
• 作用: 0 尺寸隐藏 iframe,加载 rce_loader.js
rce_loader.js
• 作用: 入口调度:认 iOS 版本、拉 worker、8 秒卡住就刷新重试
rce_module.js
• 作用: WebKit 内存破坏 / OOB 那套(addrof、overlap、offsets 表)
rce_worker.js / rce_worker_18.6.js
• 作用: Worker 里跑 stage1,版本分流(18.6 单独一坨更大)
sbx0_main_18.4.js
• 作用: 沙箱逃逸第 0 段:对 GPUProcess / WebProcess、Mach、PAC、dlopen/dlsym
sbx1_main.js
• 作用: 沙箱逃逸第 1 段;末尾 spawn_pe(),payload 占位 {{LPE_64BITE}}
rce_module_18.6.js
• 作用: 基本是空壳 d

原文截图:

苹果浏览器漏洞类源码,adctg iOS Safari 利用链源码,诱饵页(约炮/91吃瓜标题 + 假播放器)_网站源码_源码分享站

免责声明

⚠️ 本文仅供学习研究和技术交流,相关源码仅用于了解系统架构与部署流程,请勿用于非法用途。任何商业运营行为均与作者无关。

下载链接尚未配置,请联系管理员。

关注我们的公众号

微信公众号
客服