[开源工具] - chromedb读取本地Chromium数据

因为 “chromiumdb” 作为Go的包名来说有些拗口,所以名字叫做:chromedb。

从硬盘上直接读取 Chromium 数据(特别是,cookies 和本地存储)——无需启动浏览器。主要使用这个方法从经过身份验证的浏览器会话中提取令牌,以便在自动化、抓取等方面使用。

基于 Chromimum 的浏览器在配置目录的存储cookies和本地存储的下列数据库中:

chromedb

此工具从这些数据库中读取, 根据需要进行解密,并以json格式输出数据,以便在CLI上方便解析。

只在macOS上的 Arc 浏览器上进行过测试,但应该可以在任何基于Chromium的浏览器上运行。我会接受 PR 来支持在其他操作系统上解密cookies。

text

go install -v github.com/noperator/chromedb/cmd/chromedb@latest

text

chromedb -h
  • -c cookies
  • -ls 本地存储
  • -p string 浏览器文件夹的路径

要解密基于Chromium的Arc浏览器的cookies,我们首先需要从密钥链中获取其密码。

text

export BROWSER_PASSWORD=$(security find-generic-password -wga Arc)
chromedb -c -p ~/Library/Application\\ Support/Arc/User\\ Data/Profile\\ 1/ |
    shuf -n 2 |
    jq '.encrypted_value = \"<ENCRYPTED>\"'

将输出:

text

{
  "domain": ".geeksforgeeks.org",
  "name": "gfg_theme",
  "encrypted_value": "<ENCRYPTED>",
  "value": "gfgThemeDark"
}
{
  "domain": "www.citrix.com",
  "name": "renderid",
  "encrypted_value": "<ENCRYPTED>",
  "value": "rend01"
}

本地存储是未加密的,并且不需要密码。

text

chromedb -ls -p ~/Library/Application\\ Support/Arc/User\\ Data/Profile\\ 1/ |
    shuf -n 2 |
    jq

将输出:

text

{
  "storage_key": "https://docs.paloaltonetworks.com",
  "script_key": "ClientSidePersistence",
  "charset": "ISO-8859-1",
  "mime": "text/plain",
  "conversions": [
    "strconv.Quote"
  ],
  "value": "ClientContext/CLIENTCONTEXT:=visitorId%3D"
}
{
  "storage_key": "https://github.com",
  "script_key": "ref-selector:greasysock/railscookie:branch",
  "charset": "ISO-8859-1",
  "mime": "application/json",
  "conversions": [],
  "value": {
    "refs": [
      "master"
    ],
    "cacheKey": "v0:1554731422.0"
  }
}

CCL Solutions Group 的三篇优秀文章帮助了解Chromium 数据存储

相关内容