加载异常图片导致系统重启之迷
昨天看到一個貼子?一張圖片能讓 iOS 系統重啟,通過微信等社交軟件可以快速進行傳播。對這張圖片非常感興趣,于是開始研究,通過分析文件結構,發現 WechatIMG13720 1.jpg 樣本文件有三個特點
(1) 對比其他照片多了一個 AROT 的結構,這個結構很可疑,信息如下:
只有 iPhone X 等高端機型拍攝的照片才會有 AROT 結構,而 iPhone 6 等低端的機型拍攝的照片沒有 AROT 結構,可能出 iPhone 6 那時蘋果還沒加這類的功能。
(2) Exif 結構里的 ifdMainImage,找到 ExifTag 為 274, 有一個 usValue,這個值必須要是 1, 有時拍照保存的是 6, 不會觸發漏洞,這個值和圖片的顯示方式有關。
(3) 樣本圖片之所以顯示不完整,是因為scanData 數據被截斷,而且沒有結束標記,正常的 jpg 圖片,最后是有結束標記(FF D9),但是樣本文件卻沒有。
通過以上的三個特點,判斷造成系統重啟的原因是,由于圖片被截斷,系統在處理 AROT 結構時發生了錯誤。如果要構造一個能讓系統重啟的圖片,使用 iPhone X 拍照,用 010 Editor 打開照片文件,查看確認 Exif -> ifdMainImage -> ExifTag(274) -> usValue 為 1, 然后刪除最后的結束標記(FF D9),再把 scanData 刪掉至少一半的數據,保存為新的圖片文件,通過微信等社交軟件打開,點擊查看原圖系統馬上重啟。
相關參考資料
http://www.hackerfactor.com/blog/index.php?/categories/1-Image-Analysis/P2.html
https://www.media.mit.edu/pia/Research/deepview/exif.html
Author: exchen
原文地址:https://www.exchen.net/ios-jpg-system-crash.html
總結
以上是生活随笔為你收集整理的加载异常图片导致系统重启之迷的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS 13 真机调试包
- 下一篇: CVE-2019-8660 iMessa