Sc4v3g3r/browser-cache-viewer

GitHub: Sc4v3g3r/browser-cache-viewer

一个轻量级的浏览器缓存取证工具,通过 Web UI 解析、预览和下载 Chrome 与 Firefox 的磁盘缓存文件。

Stars: 0 | Forks: 0

# 浏览器缓存查看器 一个轻量级的 Web 应用,用于检查 **Chrome/Chromium** 和 **Firefox** 浏览器的缓存文件。它解析磁盘上的缓存格式,列出每个缓存资源及其 URL、时间戳和内容类型,并允许您直接在浏览器中预览或下载原始的缓存 payload。 本项目作为浏览器取证的学习项目而开发——属于数字取证和事件响应中使用的同类工具,用于从本地痕迹中还原用户的网络活动。 ## 功能 - **Chrome & Chromium** — 通过内置的 [`ccl_chromium_reader`](https://github.com/cclgroupltd/ccl_chromium_reader) 解析 Simple Cache 格式。 - **Firefox** — 解析磁盘上的 `cache2` 格式(metadata、headers、payload)。 - **自动解压** `gzip`、`brotli` 和 `deflate` 响应,以便预览时显示真实内容。 - **预览或下载**任何缓存资源(图像、HTML、JSON 等),并使用正确的 MIME 类型。 - **拖拽 `.zip`** 文件(包含收集的缓存文件夹)进行分析,无需触碰活动的用户配置。 - **现代单页 UI**(暗色主题,无需构建步骤,纯 HTML/CSS/JS)。 ## 技术栈 Python · Flask · `ccl_chromium_reader` · 原生 HTML/CSS/JS · Docker ## 项目结构 ``` browser-cache-viewer/ ├── app.py # Flask app: routes + upload handling ├── cache_parser.py # Chrome & Firefox cache parsing logic ├── templates/index.html # Single-page front end ├── static/ # Static assets (currently empty) ├── ccl_chromium_reader/ # Vendored Chrome-cache reader (MIT, CCL Solutions Group) ├── requirements.txt ├── Dockerfile ├── docker-compose.yml ├── .env.example └── README.md ``` ## 快速开始 ### 最快方式:运行已发布的镜像 无需克隆,无需构建。拉取并运行容器,然后打开应用并**拖拽一个包含浏览器缓存文件夹的 `.zip`** 文件进行分析: ``` docker pull sc4v3g3r/browser-cache-viewer docker run --rm -p 5000:5000 sc4v3g3r/browser-cache-viewer:latest ``` 然后打开 **http://127.0.0.1:5000** 并使用上传面板。 要分析**已存在于您机器上**的缓存(实时分析),请以只读方式挂载它并让应用指向它。在 **Linux/macOS** 上: ``` docker run --rm -p 5000:5000 \ -e CHROME_CACHE_DIR=/data/chromium/Default/Cache/Cache_Data \ -e FIREFOX_CACHE_BASE=/data/firefox \ -v "$HOME/.cache/chromium:/data/chromium:ro" \ -v "$HOME/.cache/mozilla/firefox:/data/firefox:ro" \ sc4v3g3r/browser-cache-viewer:latest ``` 在 **Windows (PowerShell)** 上——拖拽 `.zip` 上传是最简单的方式,但如果要挂载实时缓存,请使用 Windows 路径: ``` docker run --rm -p 5000:5000 -e CHROME_CACHE_DIR=/data/chromium/Cache_Data -v "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Cache\Cache_Data:/data/chromium/Cache_Data:ro" sc4v3g3r/browser-cache-viewer:latest ``` ### 1. 本地运行 (Python) 需要 **Python 3.10+** 和 **git**(用于其中一个依赖项)。 ``` # clone 你的 repo,然后: python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt cp .env.example .env # then edit paths for your machine (optional) python app.py ``` 打开 **http://127.0.0.1:5000**。 ### 2. 使用 Docker 运行 ``` # 将这些指向你自己的 browser caches,然后 bring it up: HOST_CHROME_CACHE=~/.cache/chromium \ HOST_FIREFOX_CACHE=~/.cache/mozilla/firefox \ docker compose up --build ``` ## 配置 所有设置均来自环境变量(参见 `.env.example`): | 变量名 | 默认值 | 用途 | |----------------------|--------------------------------------------------|------------------------------------------------| | `CHROME_CACHE_DIR` | `~/.cache/chromium/Default/Cache/Cache_Data` | UI 中显示的默认 Chrome 缓存目录 | | `FIREFOX_CACHE_BASE` | `~/.cache/mozilla/firefox/` | Firefox profiles 目录;自动扫描 `cache2` | | `HOST` | `127.0.0.1` | 绑定的网络接口 | | `PORT` | `5000` | 绑定的端口 | | `FLASK_DEBUG` | `0` | Flask 调试模式(在开发环境外保持关闭) | | `MAX_UPLOAD_MB` | `500` | `.zip` 上传的最大大小 | 常见缓存位置: - **Chrome (Linux):** `~/.config/google-chrome/Default/Cache/Cache_Data` - **Chrome (macOS):** `~/Library/Caches/Google/Chrome/Default/Cache/Cache_Data` - **Chrome (Windows):** `%LocalAppData%\Google\Chrome\User Data\Default\Cache\Cache_Data` - **Firefox:** 位于您的操作系统 Firefox profiles 文件夹下的 `/cache2/entries` 中。 ## 工作原理 1. `CacheParser` 会检测目录是 Chrome Simple Cache 还是 Firefox `cache2` 存储。 2. 对于 **Chrome**,它会委托给 `ccl_chromium_reader` 来枚举键并读取 metadata 和 payload。 3. 对于 **Firefox**,它直接读取每个缓存文件:定位 metadata 块、解析 headers 并提取响应主体。 4. 内容在需要时会被解压,并以正确的内容类型发回浏览器,以便进行内联预览或下载。 ## 安全提示 这是一个个人/分析工具,不是经过严格安全加固的服务。在运行它之前: - **绑定到 localhost。** 默认的 `HOST` 是 `127.0.0.1`。仅在您可控的网络中暴露它,绝不要暴露在公共互联网上。 - **`dir` 参数会读取主机上的任意路径**,这样您就可以将它指向任何缓存位置。这种灵活性意味着您不应将此应用暴露给不受信任的用户。 - 在开发环境之外**保持 `FLASK_DEBUG=0`** —— 调试模式会启用一个交互式的代码执行控制台。 - 上传的压缩包在解压时带有**路径遍历 保护**。 ## 致谢与许可 - 本项目自身的代码基于 **MIT License** 发布——参见 [`LICENSE`](LICENSE)。 - Chrome 缓存解析使用了由 [CCL Solutions Group](https://github.com/cclgroupltd/ccl_chromium_reader) 开发的内置 **`ccl_chromium_reader`** (MIT)。其许可保留在 `ccl_chromium_reader/LICENSE` 中。 - Firefox `cache2` 解析属于原创实现,参考了关于该磁盘格式的公开文档。 欢迎提交贡献和问题。
标签:Flask, HTTP工具, Python, 库, 应急响应, 数字取证, 无后门, 浏览器取证, 缓存解析, 自动化脚本, 请求拦截, 逆向工具