正文
,
这在设计上并不算问题,毕竟
苹果
的很多系统框架(包括第三方 App 可用的)确实依赖 Darwin 通知来完成某些功能。
虽然 Darwin 通知的数据传输能力有限,不太可能被用来窃取敏感数据,但别忘了:发送通知同样不需要权限。
总结一下 Darwin 通知的特点:
-
接收通知不需要特殊权限;
-
发送通知不需要特殊权限;
-
API 是公开的;
-
没有任何发送方校验机制。
正因为如此,我开始思考一个问题:
是否存在某些系统组件会监听特定的 Darwin 通知,并在接收到通知时执行高权限操作?
如果有,那么是否可能在沙盒应用中通过伪造通知,实现类似拒绝服务(DoS)的攻击?
你现在正在读这篇文章,说明我已经剧透了:确实存在这样的漏洞。
漏洞利用演示:EvilNotify
在我意识到 Darwin 通知机制可能存在严重漏洞之后,我决定进行深入测试。
我下载了一份最新的 iOS 系统镜像(当时是 iOS 18 的早期测试版),开始查找系统中有哪些进程使用了 notify_register_dispatch 或 notify_check 这两个函数
——
只要某个进程用到了这两个函数,那它就可能“对某些通知做出反应”,从而成为攻击目标。
很快,我找到了不少目标进程,于是做了一个小测试应用,取名叫 “EvilNotify”,
专门
用来验证
我的
想法。
已关注
关注
重播
分享
赞
关闭
观看更多
更多
退出全屏
切换到竖屏全屏
退出全屏
程序员大咖
已关注
分享视频
,时长
01:02
0
/
0
00:00
/
01:02
切换到横屏模式
继续播放
进度条,百分之0
播放
00:00
/
01:02
01:02
全屏
倍速播放中
0.5倍 0.75倍 1.0倍 1.5倍 2.0倍
超清 流畅
您的浏览器不支持 video 标签
继续观看
“一行代码让iPhone瞬间「变砖」!”发现iOS致命漏洞,开发者喜提12.7万元赏金
观看更多
转载
,
“一行代码让iPhone瞬间「变砖」!”发现iOS致命漏洞,开发者喜提12.7万元赏金
程序员大咖
已关注
分享
点赞
在看
已同步到看一看写下你的评论
视频详情
可惜,
我现在手头连一台容易被攻击的旧 iOS 设备都没有,因此无法录制运行效果的真实视频。
不过,上面
这
个 iOS 模拟器的演示视频,
基本展示了大部分概念验证(Proof of Concept, PoC)能实现的效果。
虽然有些功能在模拟器上无法运行,但核心部分的演示还是保留了下来。
在视频的最后,
你
应该能
看到一点
提示,
说明了最终“拒绝服务
(DoS)
攻击”手段是怎样的。
但在那之前,
让我先列一下
EvilNotify 利用
漏洞可以实现的所有破坏性操作。
要注意:
这些操作都是系统级的,所以哪怕用户强行退出了 App,