.git泄漏利用工具,可还原历史版本
支持 Python 3, 推荐使用 uv 运行和安装。
- python3
- uv
使用前需确保 python3/uv 和 git 在环境变量中
使用 uv 在项目目录中运行:
uv run githack http://www.example.com/.git/
使用 Python 运行:
python3 GitHack.py http://www.example.com/.git/
目标地址需要指向泄漏的 .git/ 目录。还原后的文件会保存在 dist/ 目录下,目录名由目标域名和端口生成。
例如:
uv run githack http://www.example.com/.git/
在项目目录中执行:
uv tool install .
安装完成后可以在任意目录直接运行:
githack http://www.example.com/.git/
恢复结果会写入当前命令所在目录的 dist/ 下。
更新本地源码后,如需更新全局命令:
uv tool install --force .
卸载:
uv tool uninstall githack
- 尝试直接使用
git clone克隆泄漏仓库 - 如果目标支持目录索引,递归下载
.git/文件后恢复 - 如果目录索引不可用,尝试从
HEAD、index、commit 记录和对象缓存中恢复 - 恢复完成后校验
HEAD是否可解析,避免空仓库误判成功
恢复结果默认写入:
dist/<host>_<port>/