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期)