|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住


|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图1/9

欢迎关注“新浪科技”的微信订阅号:techsina
【|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住】文/晓查
来源:量子位
iPhone又出现漏洞了 , 这个漏洞能让你手机一连WiFi就崩溃 。
如果有人把WiFi名称(SSID)设置成一串特殊字符 , 那么你要小心了 , 因为你一旦尝试去连接这个WiFi , 你的iPhone就会“中招” 。
就像下面这样 , 从此你的iPhone再也连不上WiFi了 , 即使手动打开也会自动关闭:
而且就算重启iPhone也不管用 , 必须还原手机的网络设置才能让WiFi功能恢复正常 。
仅iPhone受影响
发现这一漏洞的是一位叫做Carl Schou的安全工程师 , 他把自己家的WiFi设置成了以下名称:
%p%s%s%s%s%n

|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图2/9
(温馨提示:千万不要自己手贱尝试 , 也不要去危害其他iPhone用户 。 )
之后他就发现iPhone的WiFi功能彻底崩溃了 。
每次他尝试再次开启WiFi时 , 系统都会迅速关闭 , 即便他重新启动设备 , 或把家里的WiFi改成一个正常的名称也不行 。
Carl首先是在他iOS版本14.4.2的iPhone XS上测试发现的 , 之后他又在最新的14.6系统上进行了同样的测试 , 漏洞依旧存在 。
Carl首先在Twitter上反馈了这一问题 , 其他多位网友看到他的描述后也复现了该漏洞 。

|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图3/9

而且据这位网友反馈 , 问题不仅是WiFi不能用 , 连AirDrop也打不开了 。

|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图4/9

当然 , 这个问题也不是完全不能修复 , 具体的修复方法我们后面再提 。
如果你是Android用户 , 则完全不必担心 , 因为有人尝试用Android手机连接同样名称的WiFi , 问题没有出现 。

|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图5/9

另外 , 量子位亲测 , 该WiFi名称对Mac无影响 。 看来这个漏洞应该是iPhone独有的 。
虽然WiFi也不是不能靠重置解决 , 但一些网友认为 , 这个“可怕的”漏洞应该引起高度的重视 。
因为像这样的漏洞可能会被黑客利用 , 比如在公共场合设置在流氓WiFi , 就可以让附近所有iPhone崩溃 。
而且这很可能是一个特权提升漏洞 , 会导致溢出错误 , 从而破坏了plist 。 (plist是苹果用来储存用户设置的文件) 。

|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图6/9

一串字符为何让iPhone崩溃
看到Schou推文的其他安全工程师认为 , 是iPhone对WiFi名称的解析问题导致了这个错误 。
问题就处在名称里的“%”符号上 。
如果你学会C、C++语言 , 那么应该对这个符号有所了解:%叫做“格式化字符串”(format string) , 用来处理特殊的变量名或命令 。
比如“%3d”就是将变量以3位整型数方式输出 。
再回到“%p%s%s%s%s%n”这串特殊字符 , %p代表输出指针 , %s代表输出字符串 , %n的含义稍微复杂一些 , 代表输出%n之前的字符长度 。
比如下面这串代码:
printf(“geeks for %ngeeks” ,&c);
输出结果并不显示%n , 只是
geeks for geeks
但是这行代码会将%n之前的字符数统计下来 , 存放在变量c中 。

|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图7/9

如果我们再加一句printf(“%d” ,c);就会发现输出结果为10 。 (空格也算一个字符)
iPhone会将未经过滤的Wi-Fi名称(SSID)传递给一些执行格式化字符串的内部库 , 这会导致任意的内存写入和缓冲区溢出 , 从而破坏内存数据 。 而iOS看门狗会终止该进程 , 导致Wi-Fi禁用 。
所以iPhone没有把“%p%s%s%s%s%n”理解成普通文字 , 而是当成了特殊字符串来处理 。 iPhone的错误日志也记录下了这一事件 。

|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图8/9

至于为何要把WiFi改成这个奇怪的名字 , Carl说 , 他的所有设备都以格式化字符串命名 , 以此来发现那些有问题的设备 。
其实 , 这也不是iPhone第一次遭遇特殊字符串的攻击 。
之前最出名的莫过于2018年的“死亡短信” , 只要给iPhone发送一段有特殊泰卢固语字符的短信 , 用户就再也无法打开短信App , 因为只要一点击 , iPhone就会自动重启 。
iPhone微信也会受到此类攻击的影响 。
之后iPhone在iOS 11.3修复了此漏洞 , 但类似的字符串攻击方式频频出现 , 几乎每隔一段时间就会出现 , 防不胜防 。
解决方法
这个bug尽管用重启iPhone的方式不能 , 但也不至于让你的手机彻底坏掉 , 解决方法并不复杂:
打开iPhone上的“设置” , 选择“通用”
进入最下方的“还原”选项
选择“还原网络设置” , 输入你的手机密码

|iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住
文章图片
图9/9

等网络还原完成后 , 你的iPhone就会恢复正常 。 不用担心手机资料丢失 , 此操作只会让iPhone“忘记”之前保存的WiFi密码 , 其他不受影响 。
如果你今后看到WiFi名称里有“%”号一定要多加小心了 , 它可能是恶作剧 , 也可能是黑客的阴谋 。
希望苹果能在下次iOS更新中修复这个漏洞吧 。
参考链接:
<1>https://www.bleepingcomputer.com/news/security/iphone-bug-breaks-wifi-when-you-join-hotspot-with-unusual-name/
<2>https://appleinsider.com/articles/21/06/19/bug-in-ios-can-break-iphone-wi-fi-using-rogue-hotspot-name
<3>https://9to5mac.com/2021/06/19/a-specific-network-name-can-completely-disable-wi-fi-on-your-iphone/
(声明:本文仅代表作者观点 , 不代表新浪网立场 。 )

    推荐阅读