• Git泄露


    一、漏洞形成原因

    使用git版本控制系统(记录文件内容变化)时错误操作导致信息泄露

    二、判断是否存在git泄露

    使用dirsearch工具扫描后台,如果存在则会扫描出 .git 目录

    dirsearch安装

    进入root,输入

    apt-get install dirsearch

     出现如下图所示时成功

    dirsearch常用命令

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

    三、漏洞危害

    利用漏洞能下载.git文件夹下所有内容,如果其中包含用户名、密码等隐私数据,攻击者可以通过审计获取

    四、git是什么

    githack在kali中的安装

    下载连接

    git clone https://github.com/BugScanTeam/GitHack

    可以直接使用链接在kali里面下载githack,如果行不通可以在windows中下载压缩包,然后解压后拖到kali虚拟机中

    GitCode - 开发者的代码家园icon-default.png?t=N7T8https://gitcode.com/BugScanTeam/GitHack/overview?utm_source=csdn_github_accelerator&isLogin=1然后进入GitHack-master文件(这里我改成了GitHack)

    在这里打开终端输入命令

    python2 GitHack.py http://challenge-efb678740fb6553d.sandbox.ctfhub.com:10800/.git

    这样表示安装成功,需要在该目录下使用

    1.结构

    大体分为工作区、暂存区、本地仓库和远程仓库四个部分

    工作区:.git所在文件夹

    暂存区:一般存放在.git下的index(索引)中

    本地仓库:储存分支信息

    远程仓库:储存着各种项目例如国内的 gitee ,国外的 github , gitlab 等等

    2.常用命令

    http://t.csdnimg.cn/Gd8Fy

    Github命令大全 - 知乎

    git init 初始化一个git仓库

    git add x.txt 添加文件

    git commit -m "wrote a test file" 提交文件

    git rm x.txt 删除文件

    git commit -m "remove x.txt" 恢复文件

    git stash pop 读取最近一次保存内容

    git stash list 列出所有备份,可以利用这个列表决定从哪个地方恢复

    git status 查看当前仓库状态和内存状态

    git reset --hard 回退版本

    git diff 对比

    git log 显示到HEAD所指向的commit为止的所有历史记录,从最近到最远,可以看到3次

    注:需在当前版本库和目录下使用

    3.步骤

    前几步大致相同,都是用dirsearch扫描是否存在git漏洞,然后打开githack连接,后面则是分为git log,git stash和git index几种

    stash翻译是存放、隐匿,用于想要保存当前的修改,但是想回到之前最后一次提交的工作仓库时进行的操作.git stash将本地的修改保存起来,并且将当前代码切换到HEAD提交上。可以理解为将当前工作进度保存,暂存文件。通过git stash存储的修改列表,可以通过git stash list查看,git stash show用于校验,git stash apply用于重新存储,直接执行git stash等同于git stash save,执行 git stash pop 是恢复文件

    index翻译为索引,可以理解为暂存文件,本地库中的索引index就相当于一个文件,默认储存在.git/index的路径下

    练习

    ctfhub技能树Log

    首先用dirsearch -u 链接    判断是否存在git泄露,找到.git说明存在

    用githack克隆目录

    python2 GitHack.py 链接.git

    会在dist中存放新生成的文件,用终端打开,题目写了log,就用git log查看提交历史记录,发现进行了flag的添加,也就是add flag

    法一:

    用git reset --hard 回退版本,打开文件夹可找到flag

    法二:

    用git diff进行文件对比可找到flag

    ctfhub技能树stash

    扫描发现存在git泄露

    克隆

    同上题一样用git log找到了add flag,但发现之前的两种方法都不能找到flag

    根据题目提示用git stash pop 读取最近一次的保存内容,得到flag 

    ctfhub技能树index

    打开环境后用dirsearch扫描,发现存在git泄露

    用githack克隆目录

    打开后即可找到flag

     用git log查看发下指针指向add glag,所有目录文件夹中存有flag

  • 相关阅读:
    选择KV数据库最重要的是什么
    2022 ICPC Gran Premio de Mexico 1ra Fecha(一)
    基于Xml方式Bean的配置-命名空间种类
    IDEA配置tomcat,快速部署tomcat
    Linux内核中ideapad-laptop.c文件全解析10
    【算法基础】(一)基础算法 --- 快速排序
    Python爬虫(二十四)_selenium案例:执行javascript脚本
    IDEA中字符串怎么自动转义,双引号自动转义的小技巧
    【方法】PDF不能转换成其它格式如何解决?
    Docker安装canal、mysql进行简单测试与实现redis和mysql缓存一致性
  • 原文地址:https://blog.csdn.net/cyy001128/article/details/138035880