当前位置: 首页 > article >正文

CTFHub技能树-Git泄漏-Stash

目录

一、前提知识

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.kler.cn/news/293547.html

相关文章:

  • 前后端时间传递之注解
  • K8s中pod控制器
  • 影响画布微信小程序canvas及skyline和webview用户界面布局的关键流程
  • 如何利用ChatGPT提升学术论文讨论部分的撰写质量和效率
  • 图像仿射变换及其逆变换【Python实现】
  • 如何恢复格式化的 Android 智能手机
  • 使用NetBackup GUI 图形化进行oracle备份和恢复
  • 日志轮转方案和脚本
  • EvoSuite使用总结
  • Java+Swing+sqlserver学生成绩管理系统
  • springboot中上传图片到阿里云的oss云存储
  • CSS学习9[重点]--盒子模型大小、布局稳定性、CSS3盒模型以及盒子阴影
  • 端侧 ChatGPT 时刻到来!面壁小钢炮 3.0 重磅发布
  • Docker 在 Windows 上的使用指南
  • JVM性能调优之5种垃圾收集器
  • 【AI大模型应用开发】1.3 Prompt攻防(安全) 和 Prompt逆向工程
  • 滚珠花键助力生产加工精准化!
  • Python知识点:如何使用Python实现图像分类
  • 【Python】Requests:请求发送
  • log4j2 与 log4j使用时的几点小区别 - log4j2上手说明
  • WebStorm用Debug模式调试Vue等前端项目
  • 如何编写Linux PCI设备驱动器 之一
  • K8s中如何使用etcd进行集群信息的备份与恢复
  • el-table setCurrentRow会触发current-change函数 解决方案
  • php实用命令
  • 12,sql 中分组查询
  • GenBook RK3588一款模块化开源ARM笔记本电脑,具有高达32GB内存和模块化扩展功能
  • Vue3+vite中使用import.meta.glob
  • 【神经网络系列(高级)】神经网络Grokking现象的电路效率公式——揭秘学习飞跃的秘密【通俗理解】
  • STM32+ESP8266+MQTT协议连接阿里云实现温湿度上传