IOS 本地Cookies 讀取方法

Safari瀏覽器和iOS應用程序將持久性Cookie存儲在Cookies.binarycookies文件中。 這與其他桌面瀏覽器不同。 例如,Internet Explorer將持久Cookie存儲在臨時Internet文件夾下的文本文件中。 類似地,Firefox和Chrome瀏覽器將Cookie存儲在Sqlite數據庫文件中。 讀取存儲在文本文件和Sqlite數據庫文件中的cookie非常容易。 但是沒有可用的工具來從Cookies.binarycookies二進制文件中讀取cookies。 所以我寫了一個python腳本(BinaryCookieReader.py),當執行時將一個Cookie.binarycookies文件作爲輸入,並轉儲該文件中的所有cookie。


BinaryCookieReader的使用


1.下載並安裝Python。
2.將python安裝文件夾添加到系統PATH。
3.下載BinaryCookieReader.py
4.打開命令提示符並運行以下命令。 它從Cookies.binarycookies文件中轉儲所有Cookie。


Python BinaryCookieReader.py [Cookie.binarycookies-file-path]
在iPhone上,Safari瀏覽器和第三方iOS應用程序將cookie存儲在位於以下路徑的Cookies.binarycookies文件中。僅在未來到期日期(持久性Cookie)創建的Cookie存儲在二進制Cookie.binarycookies文件中。


大多數iOS應用程序會創建會話Cookie,並且將來的到期日期不會提示用戶每次登錄。通常這些cookie永遠不會過期,除非用戶從應用程序註銷。此外,在iTunes備份期間,將Cookies.binarycookies文件複製到備份文件夾。因此,如果有人可以訪問您的iPhone備份文件夾(Metasploit:Apple iOS備份提取模塊),還可以通過從Cookies.binarycookies文件讀取cookies來訪問您的電子郵件帳戶和社交網站。


Cookies.binarycookies格式:


Cookies.binarycookies文件由幾頁組成,每頁可以有一個或多個Cookie。完整的文件格式如下:


文件格式:
  1. 文件以4字節的魔術字符串開頭:cook。它用於標識文件類型。
  2. 接下來的四個字節是一個整數,指定文件中的頁數。
  3. 之後,每頁的4字節整數表示頁面大小。
  4. 此外,該文件包含實際的頁面內容。每個頁面的長度對應於頁面大小。頁面格式如下。
  5. 該文件以8個字節的值結尾,它可能是文件校驗和。


頁面格式:


每個頁面都以4字節的頁頭開頭:0x00000100。
接下來的四個字節是一個整數,指定頁面中的Cookie數。
3.之後,每個cookie的4字節整數表示cookie偏移量。偏移量從頁面開始指定以字節開頭的cookie的開始。
旁邊,該頁面包含實際的cookie內容。每個Cookie的長度可變。 Cookie格式如下。
頁面以4字節值結束,始終爲0x00000000。




Cookie格式:


cookie中的前4個字節是cookie的大小。
接下來的4個字節是未知的(可能與cookies標誌有關)。
接下來的四個字節是cookie標誌。這是一個整數值(1 = Secure,4 = HttpOnly,5 = Secure + HttpOnly)。
接下來的4個字節是未知數。
接下來的4個字節是一個整數,指定從cookie記錄的開頭開始的url字段的開始字節。
接下來的4個字節是一個整數,它指定從cookie記錄開始的名稱字段的開始字節(以字節爲單位)。
接下來的4個字節是一個整數,指定從cookie記錄的開頭開始的路徑字段(以字節爲單位)。
接下來的4個字節是一個整數,指定從cookie記錄開頭的值字段開始的字節數。
接下來的8個字節表示cookie的結尾,它總是0x0000000000000000。
接下來的8個字節是cookie過期日期。日期是Mac時代格式(Mac絕對時間)。 Mac時代格式從2001年1月開始。
接下來的8個字節是創建cookie的日期。

在此之後,該cookie包含實際的cookie域,名稱,路徑和值。訂單不具體,可以按任何順序出現。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章