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

news2024/11/26 0:33:00

目录

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.coloradmin.cn/o/1604530.html

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

相关文章

配置流策略实现不同网段间限制互访

在创建了 vlanif 接口并配置 IP 地址后,不同 vlan 间就可以互通了。 如果我们想要限制vlan 之间的通信,就可以通过配置流策略实现。 配置步骤(以华为交换机为例) 1、ACL 定义拒绝通过的数据流 2、定义流分类,按照ACL 对报文进行分类 3、配置流行为,动作为deny 4、配置流…

计算机不联网是否有IP地址

计算机不联网是否会有IP地址&#xff0c;这个问题涉及到计算机网络的基础知识。要深入探讨这个问题&#xff0c;我们需要从IP地址的定义、作用&#xff0c;以及计算机在不联网状态下的网络配置等多个方面进行分析。 首先&#xff0c;IP地址&#xff08;Internet Protocol Addre…

深度学习——常用激活函数解析与对比

1、 简介 在神经网络中&#xff0c;激活函数扮演着至关重要的角色。它们的主要目的是引入非线性因素&#xff0c;使得网络能够学习和表示更加复杂的函数映射。以下是激活函数应具备的特点&#xff0c;以及这些特点为何重要的详细解释&#xff1a; 引入非线性有助于优化网络&am…

求奖金(if)(C语言)

一、N-S流程图&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int I 0;float bonus 0;//提示用户&#xff1b;printf("请输入利润I&#xff1a;");//获取用户值&#xf…

怎么给一个字典进行按值或key来排序?

字典是具有指定数字或键的特定数据集或组。在 Python 以外的编程语言中&#xff0c;它们也被称为哈希映射或关联数组。 一般来说&#xff0c;它是键值对的形式&#xff0c;就像现实世界的字典一样。 要创建字典&#xff0c;请从左括号开始&#xff0c;添加键并键入一个冒号。…

SpringBoot 项目Docker部署三种方式

一种&#xff1a;直接拷贝jar到服务器部署 1.增加docker配置文件 新建Dockerfile文件&#xff0c;负责Docker的配置 FROM openjdk:21#ENV timezone RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo Asia/Shanghai >/etc/timezone# WORKD…

[2021最新]Java时间戳和日期时间互转换

代码&#xff1a; import java.text.ParseException; import java.text.SimpleDateFormat;public class MainProcess {public static void main(String[] args) throws ParseException {// 1.set formatSimpleDateFormat timeSmat new SimpleDateFormat("yyyy-MM-dd HH:…

【Jupyter Notebook】快捷键

在命令模式下&#xff0c;单元格边框是灰色&#xff08;缺省&#xff09;的。这些快捷键主要用于操作单元格。 Enter&#xff1a;进入编辑模式Shift Enter&#xff1a;运行当前单元格并选中下一个单元格Ctrl Enter&#xff1a;运行当前单元格Alt Enter&#xff1a;运行当前单…

高效生产管理:选择顺通网络ERP系统派单的理由

显然&#xff0c;传统的生产管理模式已经难以满足现代企业的需求&#xff0c;因此选择一款适合自身业务特点的生产管理软件成为了企业的当务之急。顺通鞋业ERP系统作为一款功能强大的生产管理软件&#xff0c;凭借其出色的派单功能&#xff0c;正逐渐成为众多企业的首选。通过系…

DBA-现在应该刚刚入门吧

说来话长 在2023年以前&#xff0c;我的DBA生涯都是“孤独的”。成长路径除了毕业前的实习期有人带&#xff0c;后续几乎都是靠自学。如何自学&#xff0c;看视频、看文档、网上查阅资料、项目实战。 可能是学疏才浅 &#xff0c;一直都是在中小公司混&#xff0c;在中小公司通…

MYSQL09_行格式概述、变长字段、NULL值、记录头信息、真实数据、内部结构

文章目录 ①. InnoDB - 行格式概述②. 变长字段长度列表 ③. NULL值列表④. 记录头信息5字节⑤. 记录的真实数据⑥. Compact行记录的内部结构⑦. Dynamic和Compressed行格式 ①. InnoDB - 行格式概述 ①. 我们平时的数据以行为单位来向表中插入数据,这些记录在磁盘上的存放方式…

PostgreSQL的学习心得和知识总结(一百三十八)|深入理解PostgreSQL数据库之Protocol message构造和解析逻辑

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

09-ESP32-IDF中的日志系统

ESP32-IDF中的日志系统 在ESP32-IDF中&#xff0c;日志系统是一个重要的组成部分&#xff0c;它可以帮助开发者调试代码和理解系统的运行状态。 1. 日志系统的作用 日志系统在ESP32-IDF中扮演着非常重要的角色。它可以记录系统的运行信息&#xff0c;包括系统启动、运行、错…

OSPF笔记+大实验

OSPF综合大实验---实验报告 配置IP地址 R1&#xff1a; [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 172.16.33.1 24 [R1-GigabitEthernet0/0/0]int l0 [R1-LoopBack0]ip add 172.168.34.1 24 R2: [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 172.16.33.2 24…

电脑怎么创建加密磁盘?方法很简单!

在电脑中创建加密磁盘&#xff0c;可以有效地保护电脑数据&#xff0c;避免数据泄露。那么&#xff0c;电脑怎么创建加密磁盘呢&#xff1f;下面我们就一起来了解一下吧。 密盘创建方法 创建密盘建议使用超级秘密磁盘3000&#xff0c;软件界面简约&#xff0c;操作简单&#x…

Linux上比top更直观和美观的监控软件htop

2024年4月18日&#xff0c;周四上午 htop 是一个交互式的系统监控工具&#xff0c;类似于 Linux 系统中的 top 命令&#xff0c;但提供了更加友好的界面和功能。它允许用户以直观的方式查看系统的进程、CPU、内存、交换空间以及各种系统指标的使用情况。 一些 htop 的特点包括…

【hive】lateral view侧视图

文档地址&#xff1a;https://cwiki.apache.org/confluence/display/Hive/LanguageManualLateralView 1.介绍2.语法3.code demo1&#xff09;单重侧视图2&#xff09;多重侧视图3&#xff09;tips&#xff1a;lateral view outer 1.介绍 lateral view也叫侧视图&#xff0c;属…

矿用连续式负压自动排渣放水器——YC型

从今天起&#xff0c;努力去做一个可爱的人&#xff0c;不羡慕谁&#xff0c;也不埋怨谁&#xff0c;在自己的道路上&#xff0c;欣赏自己的风景&#xff0c;遇见自己的幸福。 矿用连续式负压自动排渣放水器——YC型 【1-5-9】产品介绍 连续式式负压自动排渣放水器采用双罐体结…

项目管理的主要内容包括哪些?

项目管理作为现代企业管理的重要组成部分&#xff0c;其核心在于通过科学的方法和手段&#xff0c;对项目的启动、规划、执行、监控和收尾等全过程进行有效管理&#xff0c;以实现项目的预定目标。随着市场竞争的加剧和企业经营环境的不断变化&#xff0c;项目管理已成为企业提…

探索存内计算—基于 SRAM 的存内计算与基于 MRAM 的存算一体的探究

CSDN存内社区招募&#xff1a;https://bbs.csdn.net/forums/computinginmemory 首个存内计算开发者社区&#xff0c;现0门槛新人加入&#xff0c;发文享积分兑超值礼品&#xff1b; 存内计算先锋/大使在社区投稿&#xff0c;可获得双倍积分&#xff0c;以及社区精选流量推送&a…