文件泄露
文件泄露是指其他人通过访问到项目上的版本管理工具的隐藏文件来获得网站的源码。版本管理工具报货github,svn等。
Github泄露
Github是目前全球最热门的在线协作网站,大量的程序员都会在Github上分享自己的代码以及协力进行软件开发。但与此同时,部分的程序员出于各种原因而没有删除所分享代码中的重要敏感信息(邮箱信息 svn信息 内部账号和密码 数据库连接信息 数据库的配置信息),而被黑客利用与攻击系统。
UC某业务导致敏感内部邮件信息泄露
https://wystatic.tuisec.win/static/bugs/wooyun-2015-091525.html
高德软件多个信息泄露,影响公司安全
https://wystatic.tuisec.win/static/bugs/wooyun-2015-094921.html
预防
1)提高安全意识
Git文件泄露
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏目录,用来记录代码的变更记录等等。使用这个文件,可以用来恢复源代码。别人可以通过访问.git目录获得源代码里面数据库等信息。因此在发布代码的时候,把.git这个目录没有删除,才直接发布了。
陌陌某重要应用源码泄露
https://wystatic.tuisec.win/static/bugs/wooyun-2014-086227.html
获得源码
通过GItHack利用.git目录来获得源码
下载地址 https://github.com/lijiejie/GitHack
使用方法1
2
3git clone https://github.com/lijiejie/GitHack
python GitHack.py http:localhost/.git
预防
1)删除.git文件
2)通过apache/nginx来拒绝.git访问
SVN文件泄露
Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。
svn同样在项目根目录下会创建一个名为.svn的隐藏文件夹, 包含了所有分支commit信息和代码记录.
淘宝网某应用svn信息导致代码泄露
https://wystatic.tuisec.win/static/bugs/wooyun-2012-012665.html
获得源码
1)手动复现
1 | wget -r --no-parent --mirror http://www.example.com/.svn |
2)通过dvcs-ripper脚本获得源码 下载地址 https://github.com/kost/dvcs-ripper
1 | rip-svn.pl -v -u http://www.example.com/.svn/ |
3)通过Seay-Svn软件获得源码
在谷歌浏览器上输入 ".svn" intitle:"index of"
把搜索的网址直接放在Seay-Svn上就可以获得整个网站的代码
预防
1)设置SVN密码,并将匿名访问用户的权限设置为none。
2)发布代码时使用svn export导出,而不要使用svn co检索,防止泄露目录结构。
3)通过apache/nginx来拒绝.svn访问
1 | #Apache: |
DS_Store文件泄露
.DS_Store是Mac下Finder用来保存文件/文件夹的数据文件,每个文件夹下对应一个。
如果开发/设计人员将.DS_Store上传部署到线上环境,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
TCL某网站DS_Store文件泄露敏感信息
https://wystatic.tuisec.win/static/bugs/wooyun-2015-091869.html
获得源码
利用工具 下载地址 https://github.com/lijiejie/ds_store_exp
预防
删除.Ds_Store文件
1 | find / -name ".DS_Store" -depth -exec rm {} \; |
.hg文件泄露
Mercurial 是一个 版本控制系统. 开发者可以用它来管理源代码.
hg在初始化代码库的时候,会在当前目录下面产生一个.hg的隐藏文件
获得源码
利用工具 下载地址 https://github.com/kost/dvcs-ripper
1 | rip-hg.pl -v -u http://www.example.com/.hg/ |
预防
删除.hg
.bzr文件泄露
Bazaar-NG 是个分散式版本控制系统,旨在易于开发人员和最终用户的使用。分散式版本控制系统采用了 集市开发模型 ,可让人们通过互联网进行协作。如果使用 Bazaar-NG,您就可以向最喜欢的自由软件项目提交自己的分支,同时无需特殊权限。
获得源码
利用工具 下载地址 https://github.com/kost/dvcs-ripper
预防
删除.bzr
WEB-INF/web.xml文件泄露
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class。
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件。
中国电信-wlan上网某节点web.xml可读取导致ldap数据库泄露
https://wystatic.tuisec.win/static/bugs/wooyun-2013-039809.html
预防
禁止访问WEB-INF目录
1 | location ~ ^/WEB-INF/* { deny all; } |
网站备份文件泄露
网站备份文件(zip、sql、rar、swp)泄露指管理员误将网站备份文件或是敏感信息文件存放在某个网站目录下。外部黑客可通过暴力破解文件名等方法下载该备份文件,导致网站敏感信息泄露。
预防
不要在网站目录下存放网站备份文件或包含敏感信息的文件。
如需存放该类文件,请将文件名命名为难以破解的字符串。