简单认识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.rhkb.cn/news/309581.html

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

相关文章

数字乡村创新实践探索农业现代化与乡村振兴新路径:科技赋能农村全面振兴与农民幸福新篇章

随着信息技术的飞速发展&#xff0c;数字乡村成为推动农业现代化与乡村振兴的重要战略举措。科技赋能下的数字乡村创新实践&#xff0c;不仅提升了农业生产的智能化水平&#xff0c;也为乡村治理和农民生活带来了翻天覆地的变化。本文旨在探讨数字乡村创新实践在农业现代化与乡…

OpenCV的查找命中或未命中

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:OpenCV4.9更多形态转换 下一篇:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 目标 在本教程中&#xff0c;您将学习如何使用 Hit-or-Miss 转换&#xff08;也称为 Hit-and-Miss 转…

JavaScript知识点 --javaweb学习笔记

什么是Javascript? JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的&#xff0c;它能使网页可交互JavaScript 和Java 是完全不同的语言&#xff0c;不论是概念还是设计。但是基础语法类似JavaScript在1995 年由 Brendan Eich 发明&#xff0c;并…

护眼台灯什么品牌好?推荐目前比较好用的护眼台灯

现在孩子的近视率很高&#xff0c;尤其是儿童青少年居多&#xff0c;上了小学作业都变多了&#xff0c;很多孩子经常需要学习到很晚&#xff0c;不过家长们在重视教育质量的同时&#xff0c;有注意到孩子学习时的光线适合学习吗&#xff1f;用眼过度和光线不合适都容易导致近视…

Java快速入门系列-9(Spring框架与Spring Boot —— 深度探索及实践指南)

第九章:Spring框架与Spring Boot —— 深度探索及实践指南 9.1 Spring框架概述9.2 Spring IoC容器9.3 Spring AOP9.4 Spring MVC9.5 Spring Data JPA/Hibernate9.6 Spring Boot快速入门与核心特性9.7 Spring Boot的自动配置与启动流程详解9.8 创建RESTful服务与数据库交互实践…

OpenHarmony南向开发案例:【智能垃圾桶】

样例简介 智能垃圾桶可以通过数字管家应用来监测垃圾桶当前可用容量&#xff0c;提醒主人及时处理垃圾&#xff1b;通过日程管家可以实现和其他智能设备联动。 核心组件位置功能距离传感器置于垃圾桶盖内侧感应垃圾量红外传感器置于垃圾桶前端感应是否有人靠近光敏电阻开发板…

0.25W 3KVDC 隔离单、双输出 DC/DC SMD 型电源模块 ——TPVT-W2 系列

TPVT-W2系列是一款标准的表面贴装电源模块&#xff0c;完全实现采用全自动贴片机来组装和满足回流焊工艺&#xff0c;大大提高产能和降低人工费用。此系列产品小&#xff0c;效率高&#xff0c;低输出纹波及提供3000V以上的直流电压隔离&#xff0c;SMD封装。

第一节:什么是操作系统

什么是操作系统 一、一台计算机的组成部分1、计算机能干啥2、谈谈计算机硬件 二、什么是操作系统三、学习操作系统的层次 一、一台计算机的组成部分 如下图所示&#xff1a; 这就是就是构成一台计算机的组成部分 1、计算机能干啥 ∙ \bullet ∙计算机是我们专业吃饭的家伙&a…

微信小程序公共组件封装使用

1.在components目录下创建公共组件&#xff0c;以navbar为例 2.完成组件功能 3.调用&#xff0c;如果很多地方都会用到&#xff0c;建议放全局&#xff0c;如果不是则放在需要引用的文件中 3.1全局引用&#xff0c;在app.json做全局引用配置 3.2局部引用&#xff0c;在需要引入…

密码学与密码安全:理论与实践

title: 密码学与密码安全&#xff1a;理论与实践 date: 2024/4/10 21:22:31 updated: 2024/4/10 21:22:31 tags: 密码学加密算法安全协议密码分析密码安全实际应用未来发展 第一章&#xff1a;密码学基础 1.1 密码学概述 密码学是研究如何保护信息安全的学科&#xff0c;旨在…

C语言疑难点

AScii码&#xff1a; \0 、0、‘0’的区别&#xff1a;‘\0’转义字符的ascii码值是0&#xff0c;’\0’与数字0相同&#xff0c;但不与‘0’相同&#xff0c;‘0’的ascii码值是48&#xff0c;‘a字符的值是97&#xff08;ASCII表&#xff09; 字符串长度为5&#xff0c;大小…

房贷还款(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;double m, r 0.01;float d 300000;float p 6000;//运算还款所需月份&#xff1b;m log10…

Lua脚本使用手册(Redis篇)

Lua脚本 **简介&#xff1a;**Lua是一种功能强大的&#xff0c;高效&#xff0c;轻量级&#xff0c;可嵌入的脚本语言。它是动态类型语言&#xff0c;通过使用基于寄存器的虚拟机解释字节码运行&#xff0c;并具有增量垃圾收集的自动内存管理&#xff0c;是配置&#xff0c;脚…

Java-Tomcat

一、web补充技术 ①&#xff1a;B/S架构 主流的方式&#xff0c;只要有浏览器即可。编程方式直接基于socket即可 ②&#xff1a;javascript 简称js&#xff0c;早期只是实现在客户端的浏览器的动态效果&#xff0c;但服务端不会解释运行&#xff0c;所以本质上是静态资源。 …

1.16 LeetCode总结(基本算法)动态规划2

70. 爬楼梯 首先想到的是递归&#xff1a; // 递归 int climbStairs(int n) {if (n 1) {return 1;} else if (n 2) {return 2;}return climbStairs(n - 1) climbStairs(n - 2); }我们先来看看这个递归的时间复杂度吧&#xff1a; 递归时间复杂度 解决一个子问题时间*子问…

【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波(文末附3个算法源码)

效果: MPU6050姿态解算-卡尔曼滤波+四元数+互补滤波 目录 基础知识详解 欧拉角

Unsupervised Learning ~ Anomaly detection

unusual events vibration: 振动 Density estimation: Gaussian(normal) Distribution. standard deviation: 标准差 variance deviation sigma Mu Parameter estimation Anomaly detection algorithm 少量异常样本点的处理经验 algorithm evaluation skewed datatsets:…

Java实现二叉树(下)

1.前言 http://t.csdnimg.cn/lO4S7 在前文我们已经简单的讲解了二叉树的基本概念&#xff0c;本文将讲解具体的实现 2.基本功能的实现 2.1获取树中节点个数 public int size(TreeNode root){if(rootnull){return 0;}int retsize(root.left)size(root.right)1;return ret;}p…

【MySQL】索引篇

SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;学习技术栈 个性签名&#xff1a;保留赤子之心也许是种幸运吧 本文封面由 凯楠&#x1f4f8;友情提供 目录 本系列传送门 1. 什么是索引 2. 索引的特性 3. 索引的分类 4. 索引的优点及缺点 优点 缺点 5.…

实验5 流程图和盒图ns图

一、实验目的 通过绘制流程图和盒图&#xff0c;熟练掌握流程图和盒图的基本原理。 能对简单问题进行流程图和盒图的分析&#xff0c;独立地完成流程图和盒图设计。 二、实验项目内容&#xff08;实验题目&#xff09; 1、用Microsoft Visio绘制下列程序的程序流程图。 若…