.Git 仓库敏感信息泄露

Git介绍

        Git是由林纳斯·托瓦兹(Linus Torvalds)命名的,它来自英国俚语,意思是“混账”,Git是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。Git最初只是作为一个可以被其他前端(比如CoGito或StGit)包装的后端而开发的,但后来Git内核已经成熟到可以独立地用作版本控制。很多著名的软件都使用Git进行版本控制,其中包括Linux内核、X.Org服务器和OLPC内核等项目的开发流程。Git与常用的版本控制工具CVS, Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件支持。

实验目的

熟悉常见git常见操作,如上传、回归、修改仓库、漏洞发现等操作。

实验环境

git操作服务器-ubuntu,1台

kali-linux,1台

实验内容

1、安装Git: sudo apt-get install git

.Git 仓库敏感信息泄露_第1张图片

2、安装Apache,为了模拟git泄露,需要将git仓库文件泄露,所以需要安装Apache服务器:sudo apt-get install apache

Ubuntu 安装 sudo apt-get install apache2

.Git 仓库敏感信息泄露_第2张图片

查看是否启动成功

.Git 仓库敏感信息泄露_第3张图片

Git操作

初始化仓库

1、在使用git仓库之前需要先初始化仓库,但同时为了模拟git泄露,需要将仓库初始化到web文件夹,首先进入到网站目录,cd /var/www/html。

.Git 仓库敏感信息泄露_第4张图片

    2、进入网站目录后方可进行初始化仓库,git init,初始化成功如下图所示。

.Git 仓库敏感信息泄露_第5张图片

使用git

1、首先新建一个文件,文件名login.php,文件内容如下。

echo 'Hello World!';

?>

.Git 仓库敏感信息泄露_第6张图片

2、将文件提交到仓库

git add login.php 文件放入到临时缓存区

git commit -m “First file”(提交说明) 提交到仓库

3、第一次使用将会提示需要输入用户信息,如下图所示

按照提示直接输入个人信息即可,内容自定

git config --global user.email "[email protected]"

git config --global user.name "xxx"

.Git 仓库敏感信息泄露_第7张图片

.Git 仓库敏感信息泄露_第8张图片

4、再次编辑文件,文件内容如下。

echo 'Hello World!';

echo 'helloha';

?>

.Git 仓库敏感信息泄露_第9张图片

5、再次将文件提交到仓库

.Git 仓库敏感信息泄露_第10张图片

6、现在发现想退回到以前第一次编辑状态,非常简单,直接使用git reset命令即可:git reset --hard HEAD^

.Git 仓库敏感信息泄露_第11张图片

.Git 仓库敏感信息泄露_第12张图片

漏洞利用

       在运行 git init 初始化代码库的时候,会在当前目录下面产生一个 .git 的隐藏目录,用来记录代码的变更记录等等。在发布代码的时候,而 .git 这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。

攻击者利用该漏洞下载 .git 文件夹中的所有内容。如果文件夹中存在敏感信息(数据库账号密码、源码等),通过白盒的审计等方式就可能直接获得控制服务器的权限和机会!

1、使用kali-linux中的工具dirsearch 对目标网站进行扫描

.Git 仓库敏感信息泄露_第13张图片

2、信息泄露工具进行扫描

Releases · 0xHJK/dumpall · GitHub

相同的信息泄露还有:/env、/.svn、/.DS_Store、/Thumbs.db

参考:https://blog.csdn.net/Fiverya/article/details/128820611

你可能感兴趣的:(git,web安全)