Git泄露

server/2024/9/23 14:29:05/

一、漏洞形成原因

使用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


http://www.ppmy.cn/server/14072.html

相关文章

C++笔试强训day1

目录 1.数字统计 2.两个数组的交集 3.点击消除 1.数字统计 链接 题目非常简单&#xff0c;不做赘述&#xff1a;就是单纯利用循环逐个%2判断是否0 详细代码&#xff1a; #include <iostream> using namespace std; int main() {ios::sync_with_stdio(0);cin.tie(0);…

【注释和反射】类加载的过程

继上一篇博客【注释和反射】获取class类实例的方法-CSDN博客 目录 三、类加载的过程 例子 三、类加载的过程 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;类加载是一个将类的字节码文件从文件系统或其他来源加载到JVM的内存中&#xff0c;并将其转换为类或接口的…

让多个域名都可以访问一个wordpress网站

WordPress在安装后会默认绑定当前的域名&#xff0c;如果把多个域名都绑定到wordpress网站后&#xff0c;在通过这些域名访问时&#xff0c;还是会跳转到安装时候的域名。 有没有什么办法可以&#xff0c;让各自域名&#xff0c;访问这个wordpress网站&#xff0c;都显示的是当…

美团财务科技Java后端一面:面向对象、类加载过程、全限定类名相同的类是否可以同时被加载

更多大厂面试内容可见 -> http://11come.cn 美团财务科技Java后端一面&#xff1a;面向对象、类加载过程、全限定类名相同的类是否可以同时被加载 如何理解面向对象&#xff1f; 面向对象 是具有对象概念的编程范式&#xff0c;面向对象将程序实现分为了一个个独立的对象&…

408数据结构,怎么练习算法大题?

其实考研的数据结构算法题是有得分技巧的 得分要点 会写结构定义&#xff08;没有就自己写上&#xff09;写清楚解题的算法思想描述清楚算法实现最后写出时间和空间复杂度 以上这四步是完成一道算法题的基本步骤&#xff0c;也是其中得分的主要地方就是后面两步。但是前面两…

通过WSL在阿里云上部署Django项目MySQL

前端用Vue&#xff0c;后端用Django&#xff0c; nginx&#xff0c;Mysql 参照&#xff1a; 通过WSL在阿里云上部署Vue项目_阿里云 wsl-CSDN博客 阿里云重登录 采用Ubuntu系统&#xff0c; apt update #检查是否已经安装 mysql --version #检查是否已经安装mysql systemct…

LeetCode:2385. 感染二叉树需要的总时间(DFS Java)

目录 2385. 感染二叉树需要的总时间 题目描述&#xff1a; 实现代码与解析&#xff1a; DFS 原理思路&#xff1a; 2385. 感染二叉树需要的总时间 题目描述&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;二叉树中节点的值 互不相同 。另给你一个整数 start 。在第…

[VIM] MiniBufExplorer插件

我们在开发环境或者debug环境的时候&#xff0c;经常需要在不同的路径下的不同file中切换&#xff0c;一种可行的方法是开多个vim窗口&#xff0c;并排放着&#xff0c;需要开哪个的时候点哪个&#xff0c;但是打开的file很多的时候就不太方便了&#xff0c;这里推荐一个vim 插…