Git泄露(CTFHUB的git泄露)

log

当dirsearch 扫描一下,命令:

python dirsearch.py -u  url/.git   发现存在了git泄露

借助kali里面,打开GitHack所在的目录,然后

输入:

python2 GitHack.py -u url/.git/

必须要用Python2

tree 命令  可以看到完整目录

接下来,输入

git diff HEAD^


 Stash

同样步骤后

输入 git stash list

输入 git stash pop

最后cat一下


index

跟上面的步骤差不多


知识点:

      1.什么叫做git泄露?

     git泄露指的是开发人员在开发过程中遗忘删除 .git 文件夹,导致攻击者可以通过 .git 文件夹中的信息获取开发人员提交过的所有源码。从而导致服务器被攻击沦陷。

      2.git泄露原理

    通过泄露的.git文件夹下的文件,还原重建工程源代码

    解析.git/index (index 这个文件就是我们后面提到的暂存区(stage),是一个二进制文件)文件,找到工程中的所有

      去 .git/objects/(objects 所有的Git对象都会存放在这个目录中,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名)  文件夹下下载 对应的文件

  zlib解压文件,按原始的目录结构写入源代码    

    在git中,这些对象存储文件都是通过zlib进行压缩的,所以我们可以使用zlib将其解压出来,来看看这个文件里面存储的内容是什么:

解压代码如下:

import zlib
import requests
urla = "解压文件地址"
re = requests.get(urla)
ss = re.content
word = zlib.decompress(ss)
print(word)


 

3.   ./git

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

利用  dirsearch鉴别git泄露就是利用这个原理

 4.git的基本命令和git库工作原理

git init

新建一个文件夹,初始化一个空的git仓库

git add

将工作目录中对文件的修改或新增添加到暂存区(stage)。git被通知要追踪文件的修改

git commit

将暂存区的文件提交到版本库中,永久保存

git status

查看git库中文件的状态。已经被修改的文件,暂存的文件,未被跟踪的文件

tree

以树状图的形式列出目录的所有内容

创建一个文件,并用git add追踪它,再用git commit提交

git log

查看所有的提交数据

git ls-files -u

显示冲突的文件,-s是显示标记为冲突已解决的文件

git diff

对比工作区和stage文件的差异

git diff -cached

对比stage和branch之间的差异

git ls-files -stage

检查保存在stage的文件

git reset -hard HEAD

放弃工作区和index的改动,HEAD指针(这个文件包含了一个档期分支(branch)的引用,通过这个文件Git可以得到下一次commit的parent)仍然指向当前的commit

git checkout 

恢复被修改的文件

git reflog
查看回滚之前的版本

git stash

保存当前工作目录的临时状态

git stash save  “message”

将保存到当前工作目录状态到一个新的stash,并添加一条可选的消息来描述stash的内容

git stash list

查看当前保存的stash列表

git stash show

查看最新的stash

git stash apply

将某个stash的变更应用到当前工作目录

git stash  pop

与git stash apply相似,但是应用完后删除

git stash --all

保存所有修改

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

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

相关文章

Paddle 基于ANN(全连接神经网络)的GAN(生成对抗网络)实现

什么是GAN GAN是生成对抗网络,将会根据一个随机向量,实现数据的生成(如生成手写数字、生成文本等)。 GAN的训练过程中,需要有一个生成器G和一个鉴别器D. 生成器用于生成数据,鉴定器用于鉴定数据的准确性&…

车载测试___面试题和答案归纳

车载面试题 一、实车还在设计开发阶段,大部分测试通过什么测试? 答案:通过台架和仿真来完成的 二、测试部分划分? 测试部门是分为自研,系统,验收,自研部门是开发阶段测试,系统部门…

95、动态规划-编辑距离

递归暴力解法 递归方法的基本思想是考虑最后一个字符的操作,然后根据这些操作递归处理子问题。 递归函数定义:定义一个递归函数 minDistance(i, j),表示将 word1 的前 i 个字符转换成 word2 的前 j 个字符所需的最小操作数。 递归终止条件…

llama.cpp制作GGUF文件及使用

llama.cpp的介绍 llama.cpp是一个开源项目,由Georgi Gerganov开发,旨在提供一个高性能的推理工具,专为在各种硬件平台上运行大型语言模型(LLMs)而设计。这个项目的重点在于优化推理过程中的性能问题,特别是…

(七)JSP教程——session对象

浏览器和Web服务器之间的交互通过HTTP协议来完成,HTTP协议是一种无状态的协议,服务器端无法保留浏览器每次与服务器的连接信息,无法判断每次连接的是否为同一客户端。为了让服务器端记住客户端的连接信息,可以使用session对象来记…

Java毕设之基于springboot的医护人员排班系统

运行环境 开发语言:java 框架:springboot,vue JDK版本:JDK1.8 数据库:mysql5.7(推荐5.7,8.0也可以) 数据库工具:Navicat11 开发软件:idea/eclipse(推荐idea) 系统详细实现 医护类型管理 医护人员排班系统的系统管理员可以对医护类型添加修改删除以及…

Error: error:0308010C:digital envelope routines::unsupported 问题如何解决

Error: error:0308010C:digital envelope routines::unsupported 通常与 Node.js 的加密库中对某些加密算法的支持有关。这个错误可能是因为 Node.js 的版本与某些依赖库不兼容导致的。特别是在 Node.js 17 版本中,默认使用 OpenSSL 3,而一些旧的加密方式…

电商核心技术揭秘53:社群营销的策略与实施

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘相关系列文章合集(3) 电商技术揭秘四十一:电商平台的营销系统浅析 电商技术揭秘四十二&#…

Python轻量级Web框架Flask(13)—— Flask个人博客项目

0、前言: ★这部分内容是基于之前Flask学习内容的一个实战项目梳理内容,没有可以直接抄下来跑的代码,是学习了之前Flask基础知识之后,再来看这部分内容,就会对Flask项目开发流程有更清楚的认知,对一些开发细节可以进一步的学习。项目功能,通过Flask制作个人博客。项目架…

YOLOv9中模块总结补充|RepNCSPELAN4详图

专栏地址:目前售价售价69.9,改进点70 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!! 1. RepNCSPELAN4详图 RepNCSPELAN4是YOLOv9中的特征提取-融合模块,类似前几…

制造业的智慧进化:机器学习与人工智能的全方位渗透

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

libcity 笔记:添加自定义dataset

假设我们把libcity/data/dataset/trajectory_dataset.py复制一份到libcity/data/dataset/dataset_subclass/GeolifeDM_dataset.py,里面内容不变,只是把class的名字换了 那其他需要修改哪些内容,使得这个dataset生效呢 libcity/data/dataset/d…

国内唯一!阿里云荣膺MongoDB“2024年度DBaaS认证合作伙伴奖”

近日,在MongoDB用户大会纽约站上,阿里云荣膺MongoDB“2024年度DBaaS认证合作伙伴奖”。这是阿里云连续第五年斩获MongoDB合作伙伴奖项,也是唯一获此殊荣的中国云厂商。 MongoDB是当今全球最受欢迎的非关系型数据库之一。凭借灵活的模式和丰富…

Web3探索加密世界:如何避免限制并增加空投成功的几率

今天分享空投如何避免限制以提高效率,增加成功几率,首先我们来了解什么是空投加密,有哪些空投类型。 一、什么是空投加密? 加密货币空投是一种营销策略,包括向用户的钱包地址发送免费的硬币或代币。 加密货币项目使用…

【Linux】深浅睡眠状态超详解!!!

1.浅度睡眠状态【S】(挂起) ——S (sleeping)可中断睡眠状态 进程因等待某个条件(如 I/O 完成、互斥锁释放或某个事件发生)而无法继续执行。在这种情况下,进程会进入阻塞状态,在阻塞状态下,进程…

Python批量修改图片文件名中的指定名称

批量处理图像时,图片名有时需要统一,本教程仅针对图片中名如:0001x4.png,批量将图片名中的x4去除,只留下0001.png的情况。 如果想要按照原图片顺序批量修改图片名,参考其它博文:按照原顺序批量…

Joplin:自由、安全、多功能的笔记应用

什么是 Joplin? Joplin是一款免费、开源的笔记和待办事项应用程序,可以处理整理到笔记本中的大量笔记。这些笔记是可搜索的,可以直接从应用程序或从您自己的文本编辑器中复制、标记和修改。笔记采用Markdown 格式 功能亮点 功能丰富&#x…

科技云报道:从亚运到奥运,大型国际赛事共赴“云端”

科技云报道原创。 “广播电视转播技术拯救了奥运会”前奥委会主席萨马兰奇这句话广为流传。 奥运会、世界杯、亚运会这样的全球大型体育赛事不仅是体育竞技的盛宴,也是商业盛宴,还是技术与人文的融合秀。随着科技的进步,技术在体育赛事中扮…

google地图js,添加标记,以及infowindow信息弹窗

&#xff08;谷歌地图版本V3&#xff09; var contentString "<div classdevinfo><P>设备ID: BJ-20240507</p> <P>设备状态: 正常</p> <P>通讯信号: 89% </p> <P>设备位置: 中国</p> <P>剂量率: 988</p&…

MATLAB 自定义实现点云随机抽稀方法(66)

MATLAB 自定义实现点云随机抽稀方法(66) 一、算法介绍二、算法实现1.代码2.结果三、数据链接一、算法介绍 MATLAB虽然提供了点云随机抽稀的内置函数,但是我们也可以自己实现这个功能,有助于理解,下面是具体的实现效果和代码(直接复制粘贴即可使用): 使用提供的数据直接…
最新文章