CTFHub 信息泄露通关笔记:Git泄露 Log - 教程

本关推荐使用Githack lijiejie/GitHack: A `.git` folder disclosure exploit

使用githack后可以得到两个文件

index.html和50x.html

GitHack 主要尝试从泄露的 Git 对象中提取文件内容,Git-Dumper 则尝试把服务器上的 .git 元数据和对象重新拼成一个可以使用的本地 Git 仓库。

所以后面直接使用git-dumper

在Githack创建的文件夹中我们发现

发现只有 50x.html 和 index.html,没有 .git 目录,因此无法直接通过 Git 查看提交历史。

使用 Git-Dumper 重新获取数据

从题目提供的 /.git/ 路径下载 Git 元数据、引用和对象。

在cmd中运行以下命令 将ctfhub 的.git文件夹恢复至我们的本地的文件夹(随便创建一个即可)

bash 复制代码
mkdir E:\网络安全\git-recovered
git-dumper http://challenge-93fc0ccde56b8d3f.sandbox.ctfhub.com:10800/.git/ E:\网络安全\git-recovered

确认 .git 目录存在,并且 Git 能识别 master 分支。

bash 复制代码
cd /d E:\网络安全\git-recovered
dir /a
git status

查看提交历史

bash 复制代码
git log --all --oneline --decorate

找到三个提交:7cf4548 remove flag、d1ea00a add flag、fad3870 init。

定位被删除的文件

bash 复制代码
git log --all --diff-filter=D --summary

输出明确显示,remove flag 这个提交删除了 23585232687344.txt。

读取删除前的文件

bash 复制代码
git show d1ea00a:23585232687344.txt

d1ea00a 是添加 Flag 的提交,因此可以直接从该历史快照读取文件内容。

Git 的每个提交都会保存一份文件树快照,并通过父提交连接历史。删除文件只会让它从新快照中消失,不会自动把之前提交中的文件内容一并删除。

因此,不是在当前目录寻找这个文件,而是在 d1ea00a 对应的历史快照中读取它。

为什么删除能恢复?

相关推荐
小天源2 小时前
从 Nginx 日志到访问分析:轻量化网站监测服务的架构实践
jvm·nginx·网络安全·架构·网络监控
xhyu613 小时前
【学习笔记】图像质量评估方法 (5.生成图像是否符合用户要求)
笔记·学习·计算机视觉
2601_961146203 小时前
实验室用等离子表面处理设备处理新能源汽车塑料件的一点记录
笔记·汽车·设备
知产xiao_xin3 小时前
专利主体及权利归属
经验分享·笔记·知识产权
学电子她就能回来吗4 小时前
LeetCode Hot 100|普通数组专题学习笔记(零基础版)
笔记·算法·leetcode
2601_965384264 小时前
从微生态与流体力学视角看:“口水臭”的系统级成因与清洁边界
经验分享·笔记
卿卿的产品经理日记5 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
ManageEngine卓豪7 小时前
企业网络安全建设实践:2026 威胁态势、合规基线与分层防御落地
web安全·网络安全·it运维·网络安全防护
NetX行者8 小时前
Rust 初体验:一个全栈工程师的编译器“毒打“笔记
开发语言·笔记·rust