Git信息泄露

admin 2023年1月10日12:15:23安全文章评论11 views1770字阅读5分54秒阅读模式

Git信息泄露

澎湃的热血宿于其身,放飞的拳头如同飞燕。

Git是一个分布式版本控制工具,是一个内容寻址文件系统。在我们使用git init初始化Git仓库的时候,会生成一个.git的隐藏目录,Git会将所有的文件,目录,提交等转化为git对象,存储在这个文件夹当中。当开发人员直接提交的时候,漏洞就产生了。

先了解Git的基本命令,找到一张好图。可供速查。

Git信息泄露

先进行本地仓库初始化

git init

Git信息泄露

接着进行配置用户名和邮箱地址

Git信息泄露

把文件添加到index,提交
git add xxxgit commit -m "xxx"

Git信息泄露

查看提交的记录,其中的Commit 是Commit object(提交对象) ,用于指向一个 tree object,并且包含 commit author 和 parent commits。其后面的值是本地版本库生成的一个40位的哈希值,相当于快照。
Git信息泄露
使用GitHack工具进行漏洞探测,发现提交的源代码test.php和test1.php
Git信息泄露
查看内容其中test1.php中的内容
Git信息泄露
接着我们尝试覆盖test1.php 提交新的内容,看GitHack工具获取的内容
Git信息泄露
再使用githack进行获取,会发现,之前的内容已经被覆盖,所以githack只能获取到当前版本
Git信息泄露
使用另一款工具git_extract的情况
Git信息泄露
会发现这款工具会将不同版本的文件都会进行下载
Git信息泄露
两者的区别在于GitHack是解析.git/index文件,找到工程中所有的文件sha1,去.git/objects/ 文件夹下下载对应的文件,zlib解压文件,按原始的目录结构写入源代码。
而Git_Extract尝试恢复的有如下:
index 缓存HEAD 现分支的恢复logs/HEAD 日志refs/stash 工作进度保存refs/heads/master master 恢复info/packs packs 文件提取恢复refs/wip/index/refs/heads/master magit wip 模式 (PlaidCTF 2020)refs/wip/wtree/refs/heads/master可能重复但仍做恢复的项:packed-refsrefs/remotes/origin/HEADORIG_HEADFETCH_HEAD其他信息项:configdescriptioninfo/excludeCOMMIT_EDITMSG

也下载下来后通过git分支回滚的方法查看

git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除git reset --hard HEAD~4:将最近3次的提交回滚

Git的一些术语

Object(对象) 在 git 中,存储的数据将会保存至 .git/objects 目录下,内容经过 zlib 压缩,并且文件名使用 SHA1 Hash 命名。Blob(数据对象) 在 git 中,源文件内容在 git 中的表现形式。Tree object(树对象) 类似于一个目录 map,用于指向 blobs 和其他 tree objectsCommit object(提交对象) 用于指向一个 tree object,并且包含 commit author 和 parent commitsTag object(标签对象) 用于指向一个 commit object,并且包含一些数据Reference 用于指向单个 object。通常是一个 commit 或是一个 tag。存放在 .git/refs/ 目录下

Git的目录结构

├── HEAD — 当前 branch 指针。一般指向 refs/heads/ 里的 branch,包含一个分支(branch)的引用,通过这个文件Git可以得到下一次commit的parent
├── index — 当前branch 项目文件的 map,文件存储区域信息。
├── logs — 日志目录,保存所有更新的引用记录
│ ├── HEAD — 分支
├── objects — 项目文件目录
│ ├── info — pack文件指针(通常在客户端)
│ └── packpack文件目录
└── refs — branch 和 tags 目录,目录存储指向数据的提交对象的指针(分支)。├── heads — 存放各个 branches 的指针
├── stash — 存放 stash文件

关注公众号,回复"Git工具",领取工具。

原文始发于微信公众号(Enginge):Git信息泄露

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月10日12:15:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Git信息泄露 http://cn-sec.com/archives/1509383.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: