代码版本控制的⽂件泄露
⽂件泄露
Git
什么是⽂件泄露
GitHub
.git # 攻击者可以通过。 .git 内部⽂件,能看到很信息
.svn
.DS_Store
.hg
.bzr
cvs
WEB-INF
⽹站备份,zip 、sql、rar、swp、phpinfo
Github
Github是⽬前全球最热门的在线协作⽹站,⼤量的程序员都会在Github上分享⾃⼰的代码以及协⼒进⾏软件开发。但与此同时,部分的程序员出于各种原因⽽没有删除所分享代码中的重要敏感信息,⽽被⿊客利⽤与攻击系统。
从代码内部可以获取到
1. 邮箱信息
2. SVN信息
3. 内部账号以及密码
4. 数据库连接信息
5. 服务器配置信息
真实典型案例:
git 导致⽂件泄露
在运⾏ git init初始化代码库的时候,会在当前⽬录下⾯产⽣⼀个.git的隐藏⽬录,⽤来记录代码的变更记录等等。
在发布代码的时候,把.git这个⽬录没有删除,直接发布了。使⽤这个⽂件,可以⽤来恢复源代码。
泄露的内容
1. 所有该项⽬的源代码
2. 私有仓库的地址
3. 私密的配置信息
4. 所有commiter的邮箱帐号信息
5. (可能)内部的帐号和密码
⼯具原理:
解析.git/index⽂件,到⼯程中所有的: ( ⽂件名,⽂件sha1 )
去.git/objects/ ⽂件夹下下载对应的⽂件
zlib解压⽂件,按原始的⽬录结构写⼊源代码
修复漏洞
1. 删除.git⽂件
2. 通过apache/nginx来拒绝.git访问
3. 提⾼安全意识!
SVN 信息泄露
Subversion ,简称SVN。是⼀个开放源码的版本控制系统,
相对于的RCS、CVS,采⽤了分⽀管理系统,它的设计⽬标就是取代CVS。
互联⽹上越来越多的控制服务从CVS转移到Subversion。
svn同样在项⽬根⽬录下会创建⼀个名为.svn的隐藏⽂件夹, 包含了所有分⽀commit信息和代码记录.拿⾃⼰来测试 还好不成功 哈哈哈
修复
1. 设置SVN密码,并将匿名访问⽤户的权限设置为none。
2. 发布代码时使⽤svn export导出,⽽不要使⽤svn co检索,防⽌泄露⽬录结构。
3. 提⾼安全意识
代码
throws upApache 配置⽂件
<Directory ~ "\.svn">
Order allow,deny
Deny from all
</Directory>
Nginx 配置⽂件
location ~ ^(.*)\/\.svn\/ {
return 404;
html网页格式}
DS_Store
.DS_Store是Mac下Finder⽤来保存如何展⽰ ⽂件/⽂件夹 的数据⽂件,每个⽂件夹下对应⼀个。
如果开发/设计⼈员将.DS_Store上传部署到线上环境,可能造成⽂件⽬录结构泄漏,特别是备份⽂件、源代码⽂件。
修复:
sudo find / -name ".DS_Store" -depth -exec rm {} \;
⼩众漏洞
.hg⽂件泄露
Mercurial 是⼀个 版本控制系统. 开发者可以⽤它来管理源代码.
hg在初始化代码库的时候,会在当前⽬录下⾯产⽣⼀个.hg的隐藏⽂件
修复:
删除.hg
.bzr
Bazaar-NG 是个分散式版本控制系统,旨在易于开发⼈员和最终⽤户的使⽤。分散式版本控制系统采⽤了 集市开发模型 ,可让⼈们通过互联⽹进⾏协作。如果使⽤ Bazaar-NG,您就可以向最喜欢的⾃由软件项⽬提交⾃⼰的分⽀,同时⽆需特殊权限。
CVS
TortoiseCVS 是⼀款项⽬管理⼯具,⼀般⽤在IT⾏业,有服务器版和客户端版,在客户机上装了CVS,能够从服务器上迁出数据 。
是Windows平台上最最简单最最⽅便的CVS⼯具,TortoiseCVS的特点就是完全结合到资源管理器的⿏标右键菜单中进⾏操作,异常简单和⽅便。
cvs的⼀个windows客户端程序,功能当然是实现cvs的⼀些操作。CVS是指并发版本系统(Concurrent Versions System)。
修复:
删除该⽂件
l
WEB-INF是Java的WEB应⽤的安全⽬录。
properties是什么文件如果想在页⾯中直接访问其中的⽂件,必须通过l⽂件对要访问的⽂件进⾏相应映射才能访问
/
l: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:数据库配置⽂件。
修复:
js如何获取img里面的图片禁⽌访问WEB-INF⽬录:location ~ ^/WEB-INF/* { deny all; }nginx解决跨域问题原理
⽹站备份
zip、sql、rar、swp
如果被⼈拿到了, 别⼈就可以获取到源码去分析你的代码漏洞
最后!
平时⼀定要提⾼安全意识,避免犯低级错误liunx删除文件夹
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论