2.5.1 Github
什么是文件泄露
开发人员常用软件,会有隐藏文件,这些隐藏文件部署到项目上面,就有可能导致文件的泄露
Github(开发人员常用) git(开发人员常用) svn(开发人员常用) .DS_Store(开发人员常用) .hg(开发人员常用) .bzr(开发人员常用) cvs(开发人员常用) WEB-INF 网站备份、zip、sql、rar、swp、phpinfo
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
可以直接到gihtb.com,可以直接查询到公司相关信息
2.5.2 git文件
Git导致文件泄露
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏目录,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。
攻击者,会直接扫描.git,的隐藏文件,然后就可以通过这个目录造成源代码的泄露
案例
陌陌某重要应用源码泄露 https://wystatic.tuisec.win/static/bugs/wooyun-2014-086227.html
泄露的内容:
所有该项目的源代码 私有仓库的地址 私密的配置信息 所有commiter的邮箱帐号信息 (可能)内部的帐号和密码
利用方法
https://github.com/lijiejie/GitHack
工具原理:
解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 ) 去.git/objects/ 文件夹下下载对应的文件 zlib解压文件,按原始的目录结构写入源代码
漏洞修复
删除.git文件 通过apache/nginx来拒绝.git访问
2.5.3 svn文件
Svn信息泄露
Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。 svn同样在项目根目录下会创建一个名为.svn的隐藏文件夹, 包含了所有分支commit信息和代码记录.
导出结果带.svn文件夹的目录树
svn checkout http://路径 [本地目录全路径] --username 用户名 svn checkout svn://路径 [本地目录全路径] --username 用户名
案例:
淘宝网某应用svn信息导致代码泄露 https://wystatic.tuisec.win/static/bugs/wooyun-2012-012665.html
手动复现
一、
wget -r --no-parent --mirror http://www.example.com/.svn
cd www.example.com && svn revert --recursive .
二、
https://github.com/kost/dvcs-ripper
三、
Seay-Svn
修复
设置SVN密码,并将匿名访问用户的权限设置为none。 发布代码时使用svn export导出,而不要使用svn co检索,防止泄露目录结构。
Apache: 限制访问
<Directory ~ "\.svn">
Order allow,deny
Deny from all
</Directory>
Nginx:
location ~ ^(.*)\/\.svn\/ {
return 404;
}
2.5.4 DS_Store
DS_Store(目录结构泄露)
.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。(U盘拷文件都会产生) 如果开发/设计人员将.DS_Store上传部署到线上环境,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
案例:
TCL某网站DS_Store文件泄露敏感信息
https://wystatic.tuisec.win/static/bugs/wooyun-2015-091869.html
利用工具
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,您就可以向最喜欢的自由软件项目提交自己的分支,同时无需特殊权限。
利用工具:
https://github.com/kost/dvcs-ripper
CVS(小众)
TortoiseCVS 是一款项目管理工具,一般用在IT行业,有服务器版和客户端版,在客户机上装了CVS,能够从服务器上迁出数据 。是Windows平台上最最简单最最方便的CVS工具,TortoiseCVS的特点就是完全结合到资源管理器的鼠标右键菜单中进行操作,异常简单和方便。cvs的一个windows客户端程序,功能当然是实现cvs的一些操作。CVS是指并发版本系统(Concurrent Versions System)。
2.5.5 网站备份
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目录:location ~ ^/WEB-INF/* { deny all; }
###网站备份
研发人员备份保存的文件,zip、sql、rar、swp没有及时删除,导致被窃取
及时删除备份文件