查看: 1213|回复: 0
收起左侧

[IT业界] iPhone必崩溃bug曝光!这个WiFi水太深谁也把握不住

[复制链接]
春风万水千山
头像被屏蔽
发表于 2021-6-20 19:55:32 | 显示全部楼层 |阅读模式

  欢迎关注“新浪科技”的微信订阅号:techsina

  文/晓查

  来源:量子位


  iPhone又出现漏洞了,这个漏洞能让你手机一连WiFi就崩溃。


  如果有人把WiFi名称(SSID)设置成一串特殊字符,那么你要小心了,因为你一旦尝试去连接这个WiFi,你的iPhone就会“中招”。


  就像下面这样,从此你的iPhone再也连不上WiFi了,即使手动打开也会自动关闭:


  而且就算重启iPhone也不管用,必须还原手机的网络设置才能让WiFi功能恢复正常。


  仅iPhone受影响


  发现这一漏洞的是一位叫做Carl Schou的安全工程师,他把自己家的WiFi设置成了以下名称


  %p%s%s%s%s%n

(温馨提示:千万不要自己手贱尝试,也不要去危害其他iPhone用户。)

  

  之后他就发现iPhone的WiFi功能彻底崩溃了。


  每次他尝试再次开启WiFi时,系统都会迅速关闭,即便他重新启动设备,或把家里的WiFi改成一个正常的名称也不行。


  Carl首先是在他iOS版本14.4.2的iPhone XS上测试发现的,之后他又在最新的14.6系统上进行了同样的测试,漏洞依旧存在。


  Carl首先在Twitter上反馈了这一问题,其他多位网友看到他的描述后也复现了该漏洞。


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


  当然,这个问题也不是完全不能修复,具体的修复方法我们后面再提。


  如果你是Android用户,则完全不必担心,因为有人尝试用Android手机连接同样名称的WiFi,问题没有出现。



  另外,量子位亲测,该WiFi名称对Mac无影响。看来这个漏洞应该是iPhone独有的。


  虽然WiFi也不是不能靠重置解决,但一些网友认为,这个“可怕的”漏洞应该引起高度的重视。


  因为像这样的漏洞可能会被黑客利用,比如在公共场合设置在流氓WiFi,就可以让附近所有iPhone崩溃。


  而且这很可能是一个特权提升漏洞,会导致溢出错误,从而破坏了plist。(plist是苹果用来储存用户设置的文件)。


  一串字符为何让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中。


  如果我们再加一句printf(“%d”, c);就会发现输出结果为10。(空格也算一个字符)


  iPhone会将未经过滤的Wi-Fi名称(SSID)传递给一些执行格式化字符串的内部库,这会导致任意的内存写入和缓冲区溢出,从而破坏内存数据。而iOS看门狗会终止该进程,导致Wi-Fi禁用。


  所以iPhone没有把“%p%s%s%s%s%n”理解成普通文字,而是当成了特殊字符串来处理。iPhone的错误日志也记录下了这一事件。


  至于为何要把WiFi改成这个奇怪的名字,Carl说,他的所有设备都以格式化字符串命名,以此来发现那些有问题的设备。


  其实,这也不是iPhone第一次遭遇特殊字符串的攻击。


  之前最出名的莫过于2018年的“死亡短信”,只要给iPhone发送一段有特殊泰卢固语字符的短信,用户就再也无法打开短信App,因为只要一点击,iPhone就会自动重启。


  iPhone微信也会受到此类攻击的影响。


  之后iPhone在iOS 11.3修复了此漏洞,但类似的字符串攻击方式频频出现,几乎每隔一段时间就会出现,防不胜防。


  解决方法


  这个bug尽管用重启iPhone的方式不能,但也不至于让你的手机彻底坏掉,解决方法并不复杂


  打开iPhone上的“设置”,选择“通用”


  进入最下方的“还原”选项


  选择“还原网络设置”,输入你的手机密码


  等网络还原完成后,你的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/




http://finance.sina.com.cn/tech/csj/2021-06-20/doc-ikqciyzk0705888.shtml
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-25 14:42 , Processed in 0.129952 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表