git文件致源码泄露

  • A+
所属分类:安全漏洞

git文件致源码泄露


前言:在一道ctf题的驱动下,我进行了对git和.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文件致源码泄露

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

git文件致源码泄露

我们把文件往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文件。

git文件致源码泄露

本来想用githacker 扫一下,没东西出来,嗯。。哦,上传到github的时候.git文件没有上传上去,我的github博客项目里确实没有.git。自然也就不会扫到.git。想想也是,哪这么容易呢。
关于.git文件导致源码泄露更多:https://www.jianshu.com/p/edae09535ea3


五、CTF题解法

在用了网上的解法,恢复了网站的源文件,发现flag文件不在。
没想到flag文件其实是在github仓库的历史commits中。

git文件致源码泄露

git文件致源码泄露


作者:As_usua1出处:https://www.cnblogs.com/As-usua1/p/12237058.html版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。




如果觉得文章对你有帮助,请点击右下角“在看”

git文件致源码泄露


本文始发于微信公众号(LemonSec):git文件致源码泄露

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: