Git配置文件泄漏的处理方法

最近接连收到了几个扫描的报告,说是有几个网站存在Git配置文件泄漏的问题。所以记录一下对于这类事件的处理方法。

起因

最近接连收到多个报告,说是网站的.git文件暴露在了互联网上,通过利用漏洞可以获取到源码和一些写死的数据库连接的帐密。

Git仓库么,大家懂的都懂。但是怎么会出现这么低级的问题呢?什么?原来是业务部门自己找的vendor开发的系统?哦…那没事了…

漏洞原理

这个漏洞应该是属于源代码泄漏。开发人员使用Git将代码从代码库部署到生产服务器上,但是却没有在发布代码时删除隐藏的.git路径。如果没有对.git文件夹做任何的访问控制,那么任何人都可以通过互联网访问、下载.git文件夹。由于.git文件夹中包含了非常多的代码信息,所以攻击者可以通过.git文件还原出许多源代码文件,获取到各类配置信息,敏感数据等。因此,这个漏洞虽然简单,但是也能造成非常严重的后果。

漏洞验证

既然收到了漏洞的报告。当然首先是对这个漏洞进行验证。

Github上有不少公开的GitDump工具,可以用来对存在.git泄漏的网站进行测试。这里我使用了这个Gitdumper的脚本。

除此之外,还有一个国人开发的名为GitHack的工具,据说也不错。

反正都是使用起来很简单的工具,一行命令直接搞定。运行了一下以后发现,确实可以通过这个路径下载并恢复出大部分的源码文件。

再仔细看了一下,果然!数据库连接的帐密都可以在配置文件中找到…啧啧啧!

万幸的是,数据库还是有访问控制的,所以这个漏洞没有造成严重的后果。但是,这个案例也足够我们引起重视。

漏洞修复

修复的方法也很简单:删除.git文件夹;或者至少增加访问控制,禁止访问.git路径。