CTFHub技能树-Git泄漏-Stash

news2024/11/13 10:45:52

目录

一、前提知识

1.什么是git stash

 2.git文件目录结构

3.git中对象指向

 二、解题过程

方法一:使用GitHack

方法二:使用Git_Extract工具,这个是自动解析不用git stash等操作,直接得到flag


 

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

一、前提知识

1.什么是git stash

应用场景

比如你正在dev 分支开发一个新需求,此时突发一个bug需要你紧急修复,但新的需求并没有开发完成还不想提交代码,怎么办?这时就是 git stash 发挥作用的时候了,它可以将没开发完的代码保存到 堆栈区,切换到新的分支修复bug,等 bug 修复完可以再切换为 dev 分支,释放保存的代码继续之前未完的开发。

使用方法

将当前未提交的修改(即,工作区的修改和暂存区的修改)先暂时储藏起来

git stash 

之后可以切换到新分支修复bug

git checkout dev 

修复完之后再次切回 dev 分支继续开发,此时需要释放之前保存的代码:

git stash pop 

下列命令可以查看缓存的列表:

git stash list 

有时我们会发现因冲突导致 git stash pop 命令并没有消除 list 的记录,这样对我们操作造成一些干扰,这时我我们可以执行以下操作,清除记录:

git stash drop 

 2.git文件目录结构

.git目录:使用git init初始化git仓库的时候,生成的隐藏目录,git会将所有的文件,目录,提交等转化为git对象,压缩存储在这个文件夹当中。

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

config:Git仓库的配置文件

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

HEAD:这个文件包含了一个档期分支(branch)的引用,通过这个文件Git可以得到下一次commit的parent

hooks:这个目录存放一些shell脚本,可以设置特定的git命令后触发相应的脚本;在搭建gitweb系统或其他

git托管系统会经常用到hook script(钩子脚本)

index:这个文件就是我们前面提到的暂存区(stage),是一个二进制文件

info:包含仓库的一些信息

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

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

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

ORIG_HEAD:HEAD指针的前一个状态

3.git中对象指向

来自:Git信息泄露原理解析及利用总结 - FreeBuf网络安全行业门户

 二、解题过程

方法一:使用GitHack

使用dirsearch扫描网站

发现git泄漏

使用GitHack下载.git文件

使用git stash list查看暂存的代码,然后使用git stash pop将代码从暂存堆栈中拉去出来

 cat查看文本得到flag

方法二:使用Git_Extract工具,这个是自动解析不用git stash等操作,直接得到flag

 直接拿到flag

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

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

相关文章

C/C++:C语言中的__FILE__、__LINE__等几种C标准用法

C语言中的几种特殊标准定义 __FILE__ :正在编译文件的文件名__LINE__ :正在编译文件的行号__DATE__:编译时刻的日期字符串 如“Sep 22 2020”__TIME__:编译时刻的时间字符串 如”10:00:00“__STDC__:判断该文件是不是…

网关功能介绍

在微服务架构中,网关(API Gateway)扮演着至关重要的角色,它作为客户端和微服务之间的中介,负责路由、过滤、认证、限流等职责。以下是一些常见的网关实现: Spring Cloud Gateway: Spring Cloud …

【佳学基因检测】网站加密证书失效后,如何移除并为新的证书安装准备环境?

【佳学基因检测】网站加密证书失效后,如何移除并为新的证书安装准备环境? 当WoTrus DV Server CA证书失效后,你需要确保你的Nginx配置中不再引用该证书,并且移除或替换相关的证书文件。以下是具体步骤: 1. 确认Nginx…

如何在 cPanel 中使用 PuTTY SSH

cPanel & WHM 的直观网页界面使管理服务器和虚拟主机账户变得轻松。然而,有时在服务器命令行上工作也是很有用的。PuTTY SSH客户端允许您通过加密连接登录到服务器的命令行界面,从而确保敏感数据不会在互联网上暴露。Hostease 提供高性能的服务器&am…

Python | Leetcode Python题解之第391题完美矩形

题目: 题解: class Solution:def isRectangleCover(self, rectangles: List[List[int]]) -> bool:area, minX, minY, maxX, maxY 0, rectangles[0][0], rectangles[0][1], rectangles[0][2], rectangles[0][3]cnt defaultdict(int)for rect in rec…

【区块链 + 物联网】区块链边缘计算网关设备 | FISCO BCOS应用案例

目前边缘端设备主要以人工智能应用为主,或以数据采集网络设备为主,还未有区块链边缘计算网关设备,难以 在依托终端设备的传统行业中进行区块链 应用。本项目研制区块链边缘计算网关,将区块链、计算与网络集成 在一起,…

docker-compose安装mysql8集群

我这里一主两从mysql数据库集群,mysql镜像版本是8.0.39 如下 如下: [rootVM-20-8-centos mysqlData]# docker-compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS mysql-master …

【C题成品论文2已出】24数学建模国赛C题第二套成品论文(附参考代码)免费分享

假设:每个地块每年种植一种农作物。 针对问题一 单目标优化问题,定义决策变量,定义目标函数、定义约束条件、数据预处理、使用整数规划,编程解决问题。 定义决策变量: Xt,i:在第t年种植第i种作物的亩数…

如何规划Web项目

项目规划 规划步骤 1. 用户故事 从用户的角度描述应用程序的功能。所有用户故事放在一起描述了整个应用程序 2. 功能 3. 流程图(我们将去构建什么) 4. 架构(我们如何去构建他) 下一步就是开发步骤(使用代码来实现我…

聊聊资源调度

资源调度 般分为两个阶段: 是实现物理资源的虚拟化(即资源的抽象)于当前机器的性能越来越好,硬件配置越来越高,直接用物理机跑业务比较浪费,所以将物理机分割成更小单位的虚拟机,这样可以显著提…

“人大金仓”正式更名为“电科金仓”; TDSQL-C支持回收站/并行DDL等功能; BigQuery支持直接查询AlloyDB

重要更新 1. “人大金仓”正式更名为“电科金仓”,完整名称“中电科金仓(北京)科技股份有限公司”,突出金仓是中国电子科技集团有限公司在基础软件领域产品( [1] ) 。据悉人大金仓在上半年营收入为9056万元,净利润约21…

idea中配置Translation插件完成翻译功能

文章目录 idea下载插件配置有道云阿里云百度翻译开放平台 idea下载插件 idea中安装Translation插件 使用方法:右下角选择翻译引擎,鼠标选中想翻译的部分,右键翻译即可 之前一直用的微软的翻译,不需要配置,但是最近微软…

Unity Adressables 使用说明(七)诊断工具(Diagnostic tools)

Addressables 包含诊断工具,用于分析你的 Addressables setup、performance 和 build result 。 Addressables Profiler Module Addressables Profiler 是一个 Unity 编辑器 Profiler 模块,可以用来了解从 Addressables 加载的内容。 前提条件 必须启…

【LeetCode】06.Z字形变换

题目要求 解题思路 首先映入我们脑海的就是暴力。这一方法可行,但是时间复杂度空间复杂度很高,因此我们使用找规律的方法。这样的话我们可以模拟插入下标,这样的话很容易发现首行和末行插入的位置刚好是d2*n-2,而中间行的两个位置…

Linux环境中安装java环境(JDK8环境)

需求背景: 给国产服务器(银河麒麟V10)中安装项目运行环境,安装java环境!具体如下 下载jdk包 访问Oracle官网下载jdk包:Java Downloads | Oracle 中国 选择对应的cpu架构进行下载 https://download.csdn.…

OpenCV视频处理练习案例-学习篇

需要实现的功能: 用OpenCV打开一段视频,将每一帧画面压缩成540p,对画面进行垂 直翻转,转为黑白,然后添加高斯噪声,把处理好的每一帧画面保存 成一个mp4文件保存到本地 Python代码如下: impor…

第143天:内网安全-权限维持自启动映像劫持粘滞键辅助屏保后门WinLogon

案例一: 权限维持-域环境&单机版-自启动 自启动路径加载 路径地址 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\ ##英文C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\开始菜单\程序\启动\ ##中文…

Tensorflow常见激活函数 -- Tensorflow自学笔记10

激活函数 激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。引入非线性激活函数,可使深层神经网络的表达能力更加强大。 一. 什么是优秀的激活函数? 优秀的激活函数应满足: 1. 非线性: 激活函数非线性时,多层神经网…

泛微E9 Ecology9-JS应用高级进阶视频教程(重磅)

泛微E9 Ecology9【JS 应用】高级进阶视频教程震撼登场!点击下载 引言: 随着企业数字化转型的深入,掌握泛微E9的高级开发技能已经成为众多IT技术人员和企业信息化从业者不可或缺的竞争优势。而作为泛微E9二次开发中的重要组成部分&#xff0…

AVL 树的旋转

什么是 AVL 树? AVL 树是一种自平衡二叉搜索树(Binary Search Tree, BST),以其发明者 G. M. Adelson-Velsky 和 E. M. Landis 的名字命名。它的特点是对于任意一个节点,其左右子树的高度差(平衡因子&#…