git泄露漏洞总结

本文探讨了Git版本控制系统中的泄露漏洞,涉及原因(配置错误、操作失误和公开访问),以及如何通过ctf题型学习检测方法,如使用githack工具和gitstash功能。作者强调了实际git漏洞的复杂性,鼓励读者自我探索。
摘要由CSDN通过智能技术生成

一.git泄露漏洞原理

Git泄露是指在使用Git版本控制系统时,由于配置不当或者操作失误,导致敏感信息(如密码、密钥、源代码等)被意外地上传到公开的代码仓库或者其他公开可访问的地方,从而被未授权的人获取到。

二.造成原因

Git泄露的原理主要有以下几个方面:

  1. 配置错误:在使用Git时,如果配置不当,比如将敏感信息直接写入配置文件或者未正确设置访问权限,就会导致这些敏感信息被提交到代码仓库中。

  2. 操作失误:在进行Git操作时,比如误将敏感文件添加到暂存区或者提交到代码仓库中,或者误将敏感信息包含在提交的日志中,都可能导致敏感信息泄露。

  3. 公开仓库:如果将代码仓库设置为公开可访问的状态,任何人都可以查看和下载其中的内容,包括敏感信息。

  4. 其他公开可访问的地方:除了代码仓库,还有一些其他公开可访问的地方,比如代码托管平台的问题追踪系统、Wiki页面、邮件列表等,如果在这些地方发布了敏感信息,也可能导致泄露。

 三.git库的结构

四. git泄露ctf题型

题目来源ctfhub--git泄露

一.log

如题目所述:我们需要使用工具githack来完成。

首先要使用dirsearch 扫描网站目录和文件,看是否存在git泄露漏洞。

补充一下知识点:

选项含义
-u    指定url
-e 语言    指定网站语言,一般用-e*即所有语言
-i    保留响应状态码(不同状态码用逗号分隔,可指定范围,如-i 200,300-400)
-x    排除响应状态码(不同状态码用逗号分隔,可指定范围,如-x 400,400-500)
-w    指定字典
-r    递归目录(即可扫描新扫描出的目录下的目录)
-random-agents    使用随机User-Agent
 

基础命令:dirsearch -u “靶场链接”

 扫描后发现存在git目录。

打开githack(python2),在这里要声明两个工具都要在python环境下运行。

在文件系统中找到存放githack的文件夹,在该文件夹下运行终端。

执行命令:python2 Githack.py -u  靶场网址.git

 目的通过git泄露的文件夹还原并保存还原重建工程源代码。

 ,打开文件存储的路径,运行终端并使用git log查看历史记录。发现下列信息:

 remove flag 表示当前版本

        add flag 表示这次提交的版本

        init 表示初始的版本

 使用git diff命令可以对比提交版本,对比这三个版本发现在add flag中获得此题flag 

二.stash

与上一题差不多,首先先扫描网站是否存在git泄露。 

用githack 查看网页的目录文件.

 进入保存该文件夹的路经下打开终端,用命令git log查看历史记录。发现

 remove flag 表示当前版本

        add flag 表示这次提交的版本

        init 表示初始的版本

 输入git diff 比对版本,发现第一个下面存在一个txt文本文档,打开却没有flag。题目中提示用stash,因为不清出这个的用法,找来学了一下

git stash 的作用
git stash用于想要保存当前的修改,但是想回到之前最后一次提交的干净的工作仓库时进行的操作.git stash将本地的修改保存起来,并且将当前代码切换到HEAD提交上.

通过git stash存储的修改列表,可以通过git stash list查看.git stash show用于校验,git stash apply用于重新存储.直接执行git stash等同于git stash save.

最新的存储保存在refs/stash中.老的存储可以通过相关的参数获得,例如stash@{0}获取最新的存储,stash@{1}获取次新.stash@{2.hour.ago}获取两小时之前的.存储可以直接通过索引的位置来获得stash@{n}.

git stash的概念理解
git stash的每个存储单元在工作仓库中是通过commit的形式由树结构展示的.它的根节点是HEAD所在的提交。

执行 git stash pop 恢复文件,在查看发现还有一个txt文件,cat这个文件,发现flag。

 下列是git常用的一些命令:

 三.index

本题与上两题差不多,用githack扫描的时候发现文件夹中多了一个txt文件,尝试打开发现flag就在其中。 

 由于直接就出flag了,就觉得挺奇怪的。后来去找了资料

题目中的index并不是我们理解的web网页,而是一个暂存区,默认存储在.git/index。

关于index的具体知识点大家可以阅读一下这个大佬的文章:(Git本地库中的索引(Index)及文件状态概述_易生一世的博客-CSDN博客

有的时候会出现cat 乱码的情况,用git checkou命令解决问题。

但实际上的git漏洞并不是这么简单,直接给我们方法和提示信息这是不可能的。目前对git泄露只能说是了解一点皮毛,入门都说不上。自己去挖掘git漏洞更加困难。

  • 25
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值