首先康康git泄露是个啥玩意
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。通常情况下下载 .git 文件中会存在网页的快照
【快照:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品】
Git有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)
.git文件的结构:
hook:存放一些sheel的地方。
info:存放仓库的信息
object:存放所有git对象的地方
refs:存放提交hash的地方
config:github的配置信息
description:仓库的描述信息,主要给gitweb等git托管系统使用
HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值
- 了解 .git 的作用后,我们可以知道应该将此文件保存下来,在本地查看日志以取得flag
- 直接在url后添加 /.git/ 发现返回403 forbidden 状态码,403意为服务器知道此url的作用,且此url正确,但因权限不足而无法访问此站点
- 继续查查康康…
- 发现可以使用一个名为
githacker
的脚本直接检测并下载 .git 文件 - 安装完成后,使用指令下载
githacker --url http://challenge-fb37daf2e7a433f5.sandbox.ctfhub.com:10800/.git/ --folder 文件夹名称
-
成功保存文件
-
在简单了解 git 的常用指令后,我们可以根据题目知道,本题将使用 git log 指令来查看
git log -查看commit日志
- 根据 commit 记录可知,管理员在初始化 .git 后添加并移动了名为flag的文件但是无法查看管理员的具体操作
- 经查询后,发现可以使用指令显示日志的相关信息
git show
- get flag 并复制,解出该题