简单认识Git(dirsearch、githack下载),git泄露(ctfhub)

目录

dirsearch下载地址:

githack下载(一次不成功可多试几次)

一、什么是Git

1.git结构

2.git常用命令及示例

3.Git泄露原理

二、Git泄露

1.Log

2.Stash

3.Index


工具准备:dirsearch、githack

dirsearch下载地址:

GitHub - maurosoria/dirsearch: Web path scanner

githack下载(一次不成功可多试几次)

进入root用户,下载克隆GitHack库

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

kali下载使用GitHack_kali安装gitclone-CSDN博客

这样就是安装成功了

使用GitHack

使用到工具 GitHack 来完成,而 CTFHub 上提供的工具需要在 python2 环境中执行

 python2 GitHack.py 链接/.git/

一、什么是Git

1.git结构

Git的结构和使用_git结构-CSDN博客

(1)工作区: .git 所在文件夹
(2)暂存区(stage 或 index):一般存放在 .git 目录下的 index 文件( .git/index)中,所以把暂存区有时也叫作索引( index
(3))本地仓库(版本库):用于存储各种版本(分支)的信息。 .git 文件就是版本库,其中 的.git/HEAD 文件,它存储着当前分支的名字
(4)远程仓库:服务器存贮着各种项目,例如国内的 gitee ,国外的 github , gitlab 等等

运作过程:(图片来自水印)

创建一个版本库,通过命令git add添加到暂存区,然后通过命令 git commit -m"备注" 添加到版本库,最后通过命令 git push 推送到远程仓库 。

description:仓库的描述信息,主要给gitweb等git托管系统使用

HEAD:即.git/HEAD文件,它存储着当前分支的名字

config:Git仓库的配置文件

index:这个文件就是暂存区(stage),是一个二进制文件

info:包含仓库的一些信息

logs:保存所有更新的引用记录

COMMIT_EDITMSG:保存最新的commit message,Git系统不会用到这个文件,是用户一个参考文件

hooks:这个目录存放一些shell脚本,可以设置特定的git命令后触发相应的脚本

refs:这个目录一般包括三个子文件夹,heads、remotes和tags,heads中的文件标识了项目中的各个分支指向的当前commit

objects:所有的Git对象都会存放在这个目录中,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名

2.git常用命令及示例

GIT常用命令大全——赶紧收藏_git命令大全-CSDN博客

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
//git安装后-指定名称和邮箱

pwd	//查看当前目录

git init	//初始化,生成.git文件(若该文件隐藏,则使用ls -ah)

git log	//查看提交历史记录,从最近到最远,可以看到3次
git log --pretty=oneline	//加参,简洁查看
git reflog	//查看每一次修改历史

git add 1.txt  //添加文件
git commit -m "wrote a test file"	//提交文件
git rm 1.txt   //删除文件
git commit -m "remove 1.txt"    //删错了,恢复
git status	//查看工作区中文件当前状态

git remote	//查看远程库的信息
git remote -v	//查看远程库的详细信息
git remote rm origin	//删除远程仓库(解绑)

 

git diff <commit>  //比较现版本与上一版本的区别

git reset <commit> //回滚到上一版本
# 什么都不写 默认 --mixed 
git reset --hard <commit>   //回滚到上一版本(并丢弃修改的内容)
# --hard 丢弃修改的内容

3.Git泄露原理

Git泄露相关知识点_.git泄露-CSDN博客

Git是一个可以实现有效控制应用版本的系统,在配置不当的情况下,可能会将“.git”文件直接部署到线上环境,就很可能将源代码泄露出去。

一旦攻击者或者黑客发现这个问题之后,就可能利用其获取网站的源码、数据库等重要资源信息,进而造成严重的危害。

所以发攻击者只要发现有git泄露,就可以通过相关工具来得到它所泄露的代码,其中会有一些关键信息。

二、Git泄露

题目描述:

当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack完成本题。

1.Log

查看源代码,提示有git泄露(.git leakage)

使用dirsearch扫描,也可发现有git泄露

使用GitHack克隆目录

 扫描成功后githack会生成一个文件夹dist,里面存放着重新生成的文件

进入新文件,题目提示log,就用git log查看提交历史记录

发现添加了flag(add flag)

法一:git reset回退文件版本

git reset --hard 4ef99b0bb42e1d518d8fd93ab2e41093cb82e7c3

提示游标HEAD位于add flag中,去文件夹中打开文件发现flag 

法二:使用git diff文件对比 

git diff 93f0a5663e1393ba385c26bf597296f9bb437a63 4ef99b0bb42e1d518d8fd93ab2e41093cb82e7c3

2.Stash

stash可以理解为git的暂存文件

源代码提示有git泄露(.git leakage )

  使用dirsearch扫描,也可发现有git泄露

使用GitHack克隆目录

扫描成功后githack生成一个文件夹dist,里面存放着重新生成的文件

 进入新文件后,与上题一样,先用git log查看提交历史记录发现了add flag的历史,但是发现使用git reset回退文件版本与git diff进行文件对比均无法得到flag。

原因是存放flag的文件仅存在于stash暂存区里面,没有被提交到本地库。一般来说,不能直接在本地库查看或操作暂存区中的文件。

于是可使用git stash pop提取git的暂存文件

git stash       //备份当前工作区的内容,保存到git栈中,从最近的一次commit中读取相关内容

git stash pop   //从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。获取之后,会删除栈中对应的stash

原历史记录

 使用git stash pop提取后 (删除了最近的一次remove flag记录)

可以用ls、cat命令查看,也可直接打开文件 获得flag。 

3.Index

index可以理解为git的暂存文件

查看源代码,提示git泄露

步骤如上, 使用dirsearch扫描,也可发现有git泄露

使用GitHack克隆目录

扫描成功后githack生成一个文件夹dist,里面直接存放有重新生成的flag文件

index是暂存区,为什么直接就有flag?

使用git log查看提交历史记录,发现指针直接指向add flag的分支,故查看目录文件直接有flag。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/544353.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库SQL语言实战(二)

目录 检索查询 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目八 题目九&#xff08;本篇最难的题目&#xff09; 分析 实现&#xff08;两种方式&#xff09; 模板 总结 检索查询 按照要求查找数据库中的数据 题目一 找出没有选修任何课程的学…

02 MySQL 之 DQL专题

3. 数据库中仅有月薪字段&#xff08;month_salary&#xff09;&#xff0c;要求查询所有员工的年薪&#xff0c;并以年薪(year_salary)输出&#xff1a; 分析&#xff1a; 查询操作中&#xff0c;字段可以参与数学运算as 起别名&#xff0c;但实际上可以省略 #以下两句效果…

深入了解数据结构第四弹——排序(1)——插入排序和希尔排序

前言&#xff1a; 从本篇开始&#xff0c;我们就开始进入排序的学习&#xff0c;在结束完二叉树的学习之后&#xff0c;相信我们对数据在内存中的存储结构有了新的认识&#xff0c;今天开始&#xff0c;我们将进入排序的学习&#xff0c;今天来学习第一篇——插入排序 目录 什…

使用DockerCompose安装Redis

本文使用docker-compose的方式安装Redis&#xff0c;如何未安装docker-compose&#xff0c;可以参考这篇文章进行安装【在Ubuntu上安装Docker Compose】 一、创建一个DockerCompose配置文件 第一步&#xff1a;创建相关目录文件 为了更好的组织管理Docker容器的配置文件和映射…

毕业后个人档案如何查询

毕业后个人档案查询通常需要在所在学校的学籍管理部门或学生事务处进行查询。具体步骤如下&#xff1a; 1. 准备相关材料&#xff1a;身份证或护照复印件&#xff0c;毕业证书复印件&#xff0c;学号等相关信息。 2. 前往学校学籍管理部门或学生事务处&#xff0c;咨询个人档案…

C语言中局部变量和全局变量是否可以重名?为什么?

可以重名 在C语言中, 局部变量指的是定义在函数内的变量, 全局变量指的是定义在函数外的变量 他们在程序中的使用方法是不同的, 当重名时, 局部变量在其所在的作用域内具有更高的优先级, 会覆盖或者说隐藏同名的全局变量 具体来说: 局部变量的生命周期只在函数内部,如果出了…

专业140+总分410+北京理工大学826信号处理导论考研经验北理工电子信息通信工程,真题,参考书,大纲。

今年考研专业课826信号处理导论&#xff08;信号系统和数字信号处理&#xff09;140&#xff0c;总分410&#xff0c;顺利上岸&#xff01;回看去年将近一年的复习&#xff0c;还是记忆犹新&#xff0c;有不少经历想和大家分享&#xff0c;有得有失&#xff0c;希望可以对大家复…

[管理者与领导者-163] :团队管理 - 高效执行力 -1- 高效沟通的架构、关键问题、注意事项

目录 前言&#xff1a;沟通是管理者实施管理最重要的工作 一、人与人沟通模型 1.1 模型 1.2 完整过程 1.3 发送和接受方式 1.4 传输 1.5 关于编码与解码 1.6 反馈 1.7 沟通中常见问题 二、管理者如何提高沟通的效率 2.1 为什么管理者布置任务后&#xff0c;总有人…

HarmonyOS实战开发-状态管理、通过使用页面级的状态变量 和应用级的状态变量 来实现应用的状态管理。

介绍 本示例通过使用页面级的状态变量 和应用级的状态变量 来实现应用的状态管理。 效果预览 使用说明 1.点击首页中的基本类型进入对应页面&#xff0c;点击按钮可以更改圆形的颜色&#xff1b;点击查看源码可以展示基本类型功能效果的源码。 2.点击首页中的数组类型进入对…

微信小程序实现预约生成二维码

业务需求&#xff1a;点击预约按钮即可生成二维码凭码入校参观~ 一.创建页面 如下是博主自己写的wxml&#xff1a; <swiper indicator-dots indicator-color"white" indicator-active-color"blue" autoplay interval"2000" circular > &…

为什么光伏探勘测绘需要无人机?

随着全球对可再生能源需求的不断增长&#xff0c;光伏产业也迎来了快速发展的机遇。光伏电站作为太阳能发电的主要形式之一&#xff0c;其建设前期的探勘测绘工作至关重要。在这一过程中&#xff0c;无人机技术的应用正逐渐展现出其独特的优势。那么&#xff0c;为什么光伏探勘…

【数据结构】4.List的介绍

目录 1.什么是List 2.常见接口介绍 3.List的使用 1.什么是List 在集合框架中&#xff0c;List是一个接口&#xff0c;继承自Collection。 Collection也是一个接口&#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下&#xff1a; Iterable也是一个接口…

HashMap扩容原理(带源码分析)

HashMap的扩容原理 1.扩容流程图 注&#xff1a;拆分链表的规则 这里拆分链表时的一个比较&#xff1a;e.hash & oldCap 0 意思是&#xff1a;某一个节点的hash值和老数组容量求&运算。如果等于0&#xff0c;当前元素在老数组中的位置就是在新数组中的位置。如果不等…

使用新一代一站式 AI Bot 开发平台扣子coze,搭建我的第一个AI Bot(前端魔法师) ,

目录 1.概述​ 2.功能与优势 3.使用扣子 4.人设与回复逻辑 5.添加插件 6.预览与调试 7.发布bot Store 8.环境大家体验&#xff08;给大家内置了比较屌的插件&#xff09; 9.推荐阅读&#xff1a; 1.概述​ 扣子是新一代一站式 AI Bot 开发平台。无论你是否有编程基础…

面试经典算法系列之二叉树7 -- 二叉树的中序遍历

面试经典算法22 - 二叉树的中序遍历 LeetCode.94 公众号&#xff1a;阿Q技术站 问题描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2]示例 2&#xff1a; 输入&…

【鸿蒙开发】第二十一章 Media媒体服务(二)--- 音频播放和录制

1 AVPlayer音频播放 使用AVPlayer可以实现端到端播放原始媒体资源&#xff0c;本开发指导将以完整地播放一首音乐作为示例&#xff0c;向开发者讲解AVPlayer音频播放相关功能。 以下指导仅介绍如何实现媒体资源播放&#xff0c;如果要实现后台播放或熄屏播放&#xff0c;需要…

稀碎从零算法笔记Day48-LeetCode:三角形最小路径和

题型&#xff1a;DP、二维DP、矩阵 链接&#xff1a;120. 三角形最小路径和 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给定一个三角形 triangle &#xff0c;找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的…

Project Euler_Problem 193_Few Repeated Digits_欧拉筛+容斥公式

解题思路&#xff1a;暴力搜索 代码&#xff1a; void solve() {ll i, j,k,x,y,z,p,q,u,v,l,l1;N 999966663333, NN 1024;//N 1000;double a, b, c,d;M.NT.get_prime_Euler(1000000);l M.NT.pcnt;for (i 1; i < l; i) {u M.NT.prime[i];v M.NT.prime[i 1];x u * …

交叉熵损失函数介绍

交叉熵是信息论中的一个重要概念&#xff0c;它的大小表示两个概率分布之间的差异&#xff0c;可以通过最小化交叉熵来得到目标概率分布的近似分布。 为了理解交叉熵&#xff0c;首先要了解下面这几个概念。 自信息 信息论的基本想法是&#xff0c;一个不太可能的事件发生了…

蓝桥杯:握手问题和小球反弹问题

试题 A: 握手问题 本题总分&#xff1a; 5 分 【问题描述】 小蓝组织了一场算法交流会议&#xff0c;总共有 50 人参加了本次会议。在会议上&#xff0c; 大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手&#xff08;且仅有一次&#x…