首页
社区
课程
招聘
[翻译]Safari/iOS – Cookies.binarycookies reader
发表于: 2013-8-14 15:24 18040

[翻译]Safari/iOS – Cookies.binarycookies reader

obaby 活跃值
20
2013-8-14 15:24
18040

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构成,可能是文件的校验和



页面结构:

1. 每个页面由固定的4个byte开始0×00000100
2. 接下来的4个字节定义了当前页面包含的cookie个数
3.        接下来的4个字节定义了每个cookie的的偏移量,偏移量由页面的起始位置开始计算
4. 接下来是每个cookie的详细内容,每个cookie都有不同的长度,cookie结构将会在下文解释
5. 页面结束标记4 byte,值始终为0x00000000


cookie结构:

1.        第一个4 byte为cookie的大小
2.        第二个4 byte内容含义未知(可能与cookie标志相关)
3.        第三个4 byte为cookie标志,是一个整形数值(1=Secure, 4=HttpOnly, 5= Secure+HttpOnly).
4.        接下来的4 byte 未知
5.        接下来的4 byte标志了在cookie记录中url域的起始位置
6.接下来的 4 byte标记了cookie记录中name域的起始位置
7. 4 byte标记了cookie记录中path域的起始位置
8. 4byte 标记了value域在cookie记录中的起始位置
9.8 byte标记cookie的结束并且值始终为0x0000000000000000
10. 8byte标记了cookie的有效期(过期时间)。日期格式为Mac epoch format(Mac absolute time ),该日期格式起始于2001年1月
11. 8 byte cookie创建时间
12. 跟随其后的是cookie的domain,name, path和value。顺序不固定,可以以任何次序出现。


*LE – Little Endian
*BE  - Big Endian

原文:
http://www.securitylearn.net/2012/10/27/cookies-binarycookies-reader/
参考文献:
Tengu-Labs: Miyake%20-%20Safari%20Cookie.binarycookie%20Format%200_2[Draft].pdf
StackOverflow: safari-5-1-cookie-format-specs
Toolbox: understanding-the-safari-cookiesbinarycookies-file-format-49980


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 5
支持
分享
最新回复 (5)
雪    币: 245
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢楼主分享
2013-8-14 15:47
0
雪    币: 341
活跃值: (143)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
一会儿一个精华一会儿一个精华 结果这个是优秀o(╯□╰)o
2013-8-14 15:59
0
雪    币: 219
活跃值: (783)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
4
8月份很精彩
2013-8-14 15:59
0
雪    币: 14983
活跃值: (5285)
能力值: ( LV15,RANK:880 )
在线值:
发帖
回帖
粉丝
5
2013-8-14 16:29
0
雪    币: 3508
活跃值: (4634)
能力值: ( LV13,RANK:437 )
在线值:
发帖
回帖
粉丝
6
2018-1-16 16:00
0
游客
登录 | 注册 方可回帖
返回
//