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。
|
在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。完整的文件格式如下:
文件格式:
- 文件以4字节的魔术字符串开头:cook。它用于标识文件类型。
- 接下来的四个字节是一个整数,指定文件中的页数。
- 之后,每页的4字节整数表示页面大小。
- 此外,该文件包含实际的页面内容。每个页面的长度对应于页面大小。页面格式如下。
- 该文件以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域,名称,路径和值。订单不具体,可以按任何顺序出现。