IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git泄露漏洞 -> 正文阅读

[开发工具]git泄露漏洞

git简介

git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。当前大量开发人员使用git进行版本控制,对站点自动部署。攻击者可以利用该漏洞下载git文件夹里的所有内容。如果文件夹内有敏感信息比如站点源码、数据库账户密码等,攻击者可能直接控制服务器。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。

.git目录

  • config - 包含一些配置选项
  • description - 仓库的描述信息,主要给gitweb等git托管系统使用
  • HEAD - 指定当前分支,映射到ref引用,能够找到下一次commit的前一次哈希值
  • hooks - 存放可在某些指令前后触发运行的钩子脚本(hook scripts),默认包含一些脚本样例
  • index - 这个文件就是我们前面提到的暂存区(stage),是一个二进制文件
  • info - 存放仓库的信息
  • objects - 存储所有Git的数据对象,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名
  • refs - 存储各个分支指向的目标提交

git常用命令

  • git ls-files -u显示冲突的文件,-s是显示标记为冲突已解决的文件
  • git diff 对比工作区和stage文件的差异
  • git diff --cached 对比stage和branch之间的差异
  • git ls-files --stage 检查保存在stage的文件
  • git log 显示到HEAD所指向的提交为止的所有提交记录
  • git reset HEAD <file>可以拉取最近一次提交到版本库的文件到暂存区,且不影响工作区
  • git reset --hard HEAD放弃工作区和index的改动,HEAD指针仍然指向当前的commit

漏洞利用实例

CTFhub-Log

首先利用dirsearch工具扫描题目网站

python dirsearch.py -u http://challeng-7874a01df5e06f.sandbox.ctfhub.com:10800/

在这里插入图片描述
可以看出存在git泄露,接下来用git_extract工具来下载源代码到本地,需要注意的是此工具需要在python2环境下运行,没有的小伙伴可以去官网下载安装(可以和python3环境共存,记得修改python.exe以区分两个版本)。

python2 git_extract.py http://challenge-af087dea0ea36ad3.sandbox.ctfhub.com:10800/.git/

在这里插入图片描述
下载完成,可以在工具根目录下找到如下文件夹:
在这里插入图片描述
在此界面,右键点击Git Bush Here。接着输入git log命令,查看所有提交记录:
在这里插入图片描述
可以看到在第二条记录中进行了add flag的操作,猜测flag就在里面,继续输入git diff命令来对比文件:

git diff 930fd6274703f77ecbed6fafacfd1bdb0efff42c
最后成功得到flag:
在这里插入图片描述

CTFhub-stash

stash命令可用于临时保存和回复修改,进入题目,依照上题方法扫描网站目录,发现git漏洞存在,下载源代码到本地,查看文件夹,发现**.git\refs**目录下有一stash文件,用记事本打开该文件:
在这里插入图片描述

利用git diff命令,查看提交差异:

git diff 3a7efb60aa102868368856c99ddd1d5c2b6fd8ed

得到flag:

在这里插入图片描述
当然官方题解的步骤为:

git stash list #显示所有保存的记录列表
git stash pop #从列表中弹出来一个文件

但经过尝试并未成功。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 08:09:39  更:2021-11-24 08:10:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/24 3:12:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计