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 对应的历史快照中读取它。

为什么删除能恢复?

相关推荐
旖旎夜光6 分钟前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习
旖旎夜光1 小时前
【C++ 基础入门】C++多态(下):单/多继承虚表、多态补充与 21 道高频题
开发语言·c++·笔记·学习
叼烟扛炮6 小时前
[LangChain] 学习笔记(07):大模型长出手脚——工具(Tools)定义与调用闭环
笔记·学习·langchain
ppo_wu10 小时前
解决夸克网盘自动修改PDF打开方式的方法
经验分享·安全·网络安全
叼烟扛炮11 小时前
[LangChain] 学习笔记(06):突破大模型限制——结构化输出(Structured Output)
windows·笔记·学习·langchain
且从容.12 小时前
VUE3学习笔记(根据黑马教程总结)
笔记·学习
蒸蒸yyyyzwd13 小时前
关于 AI 开发相关的一些面经。
笔记·学习
2603_9696948514 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
迪康coolmu15 小时前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
无咎.lsy18 小时前
《机器学习》笔记
笔记·机器学习