简单认识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。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解决微信小程序无法使用css3过度属性transition

由于微信小程序不支持CSS3过度属性transition,所以我们需要利用微信小程序api进行画面过度的展示 首先是官方示例: wxml: <view animation="{{animationData}}" style="background:red;height:100rpx;width:100rpx"></view> js: Page(…

搭建Hive 3.x环境(CentOS 9 + Hadoop3.x)

零、资源准备 虚拟机相关&#xff1a; VMware workstation 16&#xff1a;虚拟机 > vmware_177981.zipCentOS Stream 9&#xff1a;虚拟机 > CentOS-Stream-9-latest-x86_64-dvd1.iso JDK jdk1.8&#xff1a;JDK > jdk-8u261-linux-x64.tar.gz Hadoop Hadoop 3.3.6&a…

【Java】内存可见性问题是什么?

文章目录 内存模型内存可见性解决方案volatile 内存模型 什么是JAVA 内存模型&#xff1f; Java Memory Model (JAVA 内存模型&#xff09;是描述线程之间如何通过内存(memory)来进行交互。 具体说来&#xff0c; JVM中存在一个主存区&#xff08;Main Memory或Java Heap Mem…

架构师系列-搜索引擎ElasticSearch(七)- 集群管理之分片

集群健康检查 Elasticsearch 的集群监控信息中包含了许多的统计数据&#xff0c;其中最为重要的一项就是集群健康&#xff0c;它在 status字段中展示为 green&#xff08;所有主分片和副本分片都正常&#xff09;、yellow&#xff08;所有数据可用&#xff0c;有些副本分片尚未…

Collection与数据结构 二叉树(三):二叉树精选OJ例题(下)

1.二叉树的分层遍历 OJ链接 上面这道题是分层式的层序遍历,每一层有哪些结点都很明确,我们先想一想普通的层序遍历怎么做 /*** 层序遍历* param root*/public void levelOrder1(Node root){Queue<Node> queue new LinkedList<>();queue.offer(root);while (!qu…

Vue 2实现未登录拦截页面功能

在Vue 2中实现未登录拦截页面功能&#xff0c;通常可以通过路由守卫和全局前置守卫来完成。以下是一个基本的实现步骤和示例代码&#xff0c;帮助你创建一个简单的未登录拦截逻辑。 步骤 1: 安装和配置路由 首先&#xff0c;确保你的Vue项目已经安装并配置了vue-router。如果…

Spring Boot(二)— 自定义Spring Boot Starter

在Spring Boot中&#xff0c;自定义Spring Boot Starter是一个常见且强大的功能&#xff0c;它允许开发者为特定的功能或库创建自己的自动配置&#xff0c;从而简化集成过程。 1 前置知识 Spring Boot的事件为应用的启动和关闭提供了详细的上下文信息&#xff0c;使得开发者能…

基于表面势的增强型p-GaN HEMT器件模型

来源&#xff1a;电子学报 22年 摘要 为了满足功率电路及系统设计对p-GaN HEMT&#xff08;High Electron Mobility Transistor&#xff09;器件模型的需求&#xff0c;本文建立了一套基于表面势计算方法的增强型p-GaN HEMT器件SPICE&#xff08;Simulation Program with Int…

Golang | Leetcode Golang题解之第27题移除元素

题目&#xff1a; 题解&#xff1a; func removeElement(nums []int, val int) int {left, right : 0, len(nums)for left < right {if nums[left] val {nums[left] nums[right-1]right--} else {left}}return left }

软件杯 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习&#xff1f;5.1.2 为什么要迁移学习&#xff1f; 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

Eland上传bge-large-zh-v1.5向量化模型到ElasticSearch中

最近需要做一些向量检索&#xff0c;试试ES 一、准备 系统&#xff1a;MacOS 14.3.1 ElasticSearch&#xff1a;8.13.2 Kibana&#xff1a;8.13.2 本地单机环境&#xff0c;无集群&#xff0c;也不基于Docker BGE是一个常见的文本转向量的模型&#xff0c;在很多大模型RAG应…

数据仓库—维度建模—维度表设计

维度表 维度表(Dimension Table)是数据仓库中描述业务过程中各种维度信息的表,用于提供上下文和描述性信息,以丰富事实数据的分析 维度表是维度建模的灵魂所在,在维度表设计中碰到的问题(比如维度变化、维度层次、维度一致性、维度整合和拆分等)都会直接关系到维度建模…

docker和kubernetes(k8s)

docker是什么 运行程序需要环境&#xff0c;不同的环境&#xff0c;程序运行的结果就不一样。将程序打包给其它客户端使用时&#xff0c;客户端需要自己配置相应的环境。我们将程序和环境一起打包给其它客户端&#xff0c;客户端可直接运行程序。docker容器作为程序和操作系统…

防汛物资仓库管理系统|实现应急物资仓库三维可视化

系统概述 智慧应急物资仓库可视化系统&#xff08;智物资DW-S300&#xff09;采用了 B/S 架构的设计&#xff0c;通过浏览器即可快速登录操作。实现对库房内的应急物资从申购入库、出库、调拨、库内环境监测、维修保养、检测试验、处置报废等全周期、科学、规范的管理。系统以…

SpringBoot实用开发(十六)-- SpringBoot整合ActiveMQ

目录 1.导入springboot整合ActiveMQ的starter 2.进行yml文件的基础配置 3.使用JmsMessagingTemplate操作ActiveMQ

ssh爆破服务器的ip-疑似肉鸡

最近发现自己的ssh一直有一些人企图使用ssh暴力破解的方式进行密码破解.就查看了一下,真是网络安全太可怕了. 大家自己的服务器密码还是要设置好,管好,做好最基本的安全措施,不然最后只能沦为肉鸡. ssh登陆日志可以在/var/log下看到,ubuntu的话为auth.log,centos为secure文件 查…

45.HarmonyOS鸿蒙系统 App(ArkUI)创建列表(List)

列表是一种复杂的容器&#xff0c;当列表项达到一定数量&#xff0c;内容超过屏幕大小时&#xff0c;可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集&#xff0c;例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求&#xff08;如通讯录、音乐列…

Android Activity 启动涉及几个进程

Zygote进程: Zygote进程在Android系统启动时被初始创建&#xff0c;并且初始化了虚拟机&#xff08;Dalvik或ART&#xff09;&#xff0c;预加载了Android系统的核心类库。所有的Android应用进程都是通过fork()从Zygote进程派生出来的&#xff0c;这允许应用快速启动&#xff0…

ChatGPT 和 Elasticsearch:使用 Elastic 数据创建自定义 GPT

作者&#xff1a;Sandra Gonzales ChatGPT Plus 订阅者现在有机会创建他们自己的定制版 ChatGPT&#xff0c;称为 GPT&#xff0c;这替代了之前博客文章中讨论的插件。基于本系列的第一部分的基础 —— 我们深入探讨了在 Elastic Cloud 中设置 Elasticsearch 数据和创建向量嵌…

软件无线电安全之HackRF One初探

HackRF介绍 HackRF是一款开源软件无线电&#xff08;SDR&#xff09;平台&#xff0c;由Great Scott Gadgets公司推出。它具有广泛的频率覆盖范围&#xff0c;从1 MHz到6 GHz&#xff0c;支持大部分常见的无线通信频段。采用软件定义无线电技术&#xff0c;HackRF提供了自定义…