天天看点

文件泄露

github

Github是目前全球最热门的在线协作网站,大量的程序员都会在Github上分享自己的代码以及协力进行软件开发。但与此同时,部分的程序员出于各种原因而没有删除所分享代码中的重要敏感信息,而被利用与系统。

危害

邮箱 svn信息 内部账号

git

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

利用方法

https://github.com/lijiejie/GitHack

处理方法

删除.git 文件

拒绝对.git的访问

svn

Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。

svn同样在项目根目录下会创建一个名为.svn的隐藏文件夹, 包含了所有分支commit信息和代码记录.

利用工具

1.wget -r --no-parent --mirror http://www.example.com/.svn

cd www.example.com && svn revert --recursive .

2.https://github.com/kost/dvcs-ripper

3.Seay-Svn

修复

设置SVN密码,并将匿名访问用户的权限设置为none。

发布代码时使用svn export导出,而不要使用svn co检索,防止泄露目录结构。

Apache:

<Directory ~ ".svn">

Order allow,deny

Deny from all

</Directory>

Nginx:

location ~ ^(.*)\/.svn\/ {

return 404;

}

.ds_store

.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。

如果开发/设计人员将.DS_Store上传部署到线上环境,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

https://github.com/lijiejie/ds_store_exp

sudo find / -name ".DS_Store" -depth -exec rm {} \;

.hg

Mercurial 是一个 版本控制系统. 开发者可以用它来管理源代码.

hg在初始化代码库的时候,会在当前目录下面产生一个.hg的隐藏文件

https://github.com/kost/dvcs-ripper

rip-hg.pl -v -u http://www.example.com/.hg/

修复

删除。hg文件

.bzr

Bazaar-NG 是个分散式版本控制系统,旨在易于开发人员和最终用户的使用。分散式版本控制系统采用了 集市开发模型 ,可让人们通过互联网进行协作。如果使用 Bazaar-NG,您就可以向最喜欢的自由软件项目提交自己的分支,同时无需特殊权限。