歡迎關注“新浪科技”的微信訂閱號:techsina
文/曉查
來源:量子位
iPhone又出現漏洞了,這個漏洞能讓你手機一連WiFi就崩潰。
如果有人把WiFi名稱(SSID)設置成一串特殊字符,那么你要小心了,因為你一旦嘗試去連接這個WiFi,你的iPhone就會“中招”。
就像下面這樣,從此你的iPhone再也連不上WiFi了,即使手動打開也會自動關閉:
而且就算重啟iPhone也不管用,必須還原手機的網絡設置才能讓WiFi功能恢復正常。
僅iPhone受影響
發現這一漏洞的是一位叫做Carl Schou的安全工程師,他把自己家的WiFi設置成了以下名稱:
%p%s%s%s%s%n
之后他就發現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/
(聲明:本文僅代表作者觀點,不代表新浪網立場。)