-
-
[翻译]Safari/iOS – Cookies.binarycookies reader
-
发表于:
2013-8-14 15:24
18263
-
[翻译]Safari/iOS – Cookies.binarycookies reader
Safari/iOS – Cookies.binarycookies reader
翻译:obaby
Safari 浏览器和iOS应用程序将永久cookie保存在Cookies.binarycookies文件中。这于其他桌面浏览器的保存方式是不同的。例如IE会将永久cookie以文本的方式保存在Temporary 临时文件夹下,Firefox 和chrome则会将永久cookie保存在一个sqlite数据库中。保存在数据库中和文本中的cookie是非常容易读取的。但是并没有合适的工具来从Cookies.binarycookies二进制文件中读取cookies信息。所以我写了一个python脚本(BinaryCookieReader.py)来获取Cookies.binarycookies文件中所有的cookie信息,这个脚本的输入参数为Cookies.binarycookies文件。
使用方法:
1. 下载并且安装 Python
2. 将python的路径添加到系统的PATH环境变量中
3. 下载 BinaryCookieReader.py
4. 打开命令提示符并且输入下面的命令。它将会从Cookies.binarycookies文件中解析出所有的cookie
Python BinaryCookieReader.py [Cookie.binarycookies-file-path]

在iPhone上,safari浏览器和第三方的iOS程序将Cookies.binarycookies保存在如下路径下。只有那些过期时间比较长的cookie(永久cookie)才会保存在这个Cookies.binarycookies文件中:

注:iOS6 上safari路径为/private/var/mobile/Library/Cookies
通常大多数的iOS程序会创建一个带有非常长时间的会话连接cookie,因为他们不想让用户在每次登陆的时候都重新输入验证信息。通常这个cookie永远不会过期,除非用户手工从应用中进行注销。所以在通常的iTunes备份中这个Cookies.binarycookies也会被写入到备份文件中。因而如果有人可以获取到你的iPhone备份文件(详情请参考Metasploit: Apple iOS backup extraction module),他们同样可以通过读取Cookies.binarycookies文件来访问你的邮件账户、社交网络等信息。
Cookies.binarycookies 文件格式:
Cookies.binarycookies文件由多个页面组成,每个页面保存有一个或者多个cookie。详细的文件结构如下文所示:
文件格式:
1. 文件开始4个byte为魔术字(magic string) cook,通常用来标记文件类型
2. 下面4 byte为一个整形数值,用来标记文件的页数(pages)
3. 接下来的每4 byte用来标记每个页面的大小
4. 随后是页面内容(page content),每个页面长度于页面大小相对应。页面结构将会在下文解释
5. 文件结尾由8 byte构成,可能是文件的校验和

页面结构:
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!