码迷,mamicode.com
首页 > 其他好文 > 详细

git文件致源码泄露

时间:2020-01-28 00:09:28      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:开发   知识点   文件恢复   tps   src   版本   仓库   原理   工作   

技术图片

前言:在一道ctf题的驱动下,我进行了对git和.git文件致源文件泄露的学习。

一、任务


技术图片

一道ctf题目。

二、确定题目考的点

谷歌关键词:版本管理工具 github ctf

由得到的结果猜测,可能考的点是.git文件导致源文件泄露。

三、对git的粗略学习

其实经常会用到git,例如在用hexo+github pages搭建博客的时候就用到了git,又如在linux下载一些工具的时候,用到的git clone。

git:分布式版本控制系统。

首先,何为版本控制系统?以git的诞生故事来解释,linus在开发linux的时候,有世界广大热心的志愿者的帮助,最开始都是志愿者把源码down下来改了后在发给linus,linus再手工合成。当然linux源码大了后自然很不方便,又由于CVS、SVN(集中式版本控制系统)慢且需联网,又经历了一些事件后,linus用C语言开发了git,此后,源码的每次改动都会有记录,即每个版本都有记录。其实可以类比gitbub的功能。

何为分布式?分布式即与集中式对立,集中式是有一个中央服务器来存储源码,用户每次修改源码都需要从中央服务器把源码down下来,修改后再提交到中央服务器。而分布式则是每个人电脑里都有完整的版本库。

对理解git工作原理的重要知识点:工作区和暂存区

工作区就是电脑里看到的目录。

技术图片

暂存区在版本库里,版本库就是隐藏目录.git。一张图明了。stage是暂存区,master是分支,我觉得就是所有文件存储的地方。

技术图片

我们把文件往git版本库添加的时候,分两步:

1、git add :文件添加到暂存区

2、git commit :暂存区的所有文件添加到master

关于git的学习推荐廖雪峰老师的教程:https://www.liaoxuefeng.com/wiki/896043488029600 我的上面的内容基本都是从他的教程里提炼出来的。

四、学习.git 文件导致源码泄露

开发人员在开发时,常常会先把源码提交到远程托管网站(如github),最后再从远程托管网站把源码pull到服务器的web目录下,如果忘记把.git文件删除,就造成此漏洞。利用.git文件恢复处网站的源码,而源码里可能会有数据库的信息。

利用工具有挺多的:githack githacker git_extract

想了想,其实自己的博客就有.git文件。

技术图片

本来想用githacker 扫一下,没东西出来,嗯。。哦,上传到github的时候.git文件没有上传上去,我的github博客项目里确实没有.git。自然也就不会扫到.git。想想也是,哪这么容易呢。

关于.git文件导致源码泄露更多:https://www.jianshu.com/p/edae09535ea3

五、CTF题解法

在用了网上的解法,恢复了网站的源文件,发现flag文件不在。

没想到flag文件其实是在github仓库的历史commits中。

技术图片

技术图片

git文件致源码泄露

标签:开发   知识点   文件恢复   tps   src   版本   仓库   原理   工作   

原文地址:https://www.cnblogs.com/As-usua1/p/12237058.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!