代码泄露一般有SVN代码泄露及GIT代码泄露。例如在使用SVN管理本地代码过程中,会自动生成一个名为SVN的隐藏文件夹,其中包含重要的代码信息。但一些开发者在发布代码的时候,直接复制代码文件夹到Web服务器,这就使SVN隐藏文件夹暴露于外网。攻击者可利用该漏洞下载网站的代码,再从代码里获得数据库的连接密码或者通过代码分析出新的系统漏洞,进一步入侵系统。
另外,也有大量的开发者使用GIT进行版本控制及对站点进行自动部署。如果配置不当,可能会将GIT文件夹直接部署到线上环境,这就引起了GIT文件泄露。攻击者可直接从泄露的代码中获取敏感配置信息(如邮箱及数据库等),也可以进一步审计代码,挖掘文件上传及SQL注入等安全漏洞。
总体来讲,代码泄露是开发者安全意识不到位造成的。
例1:某站存在SVN代码泄露。开启浏览器,输入某站主域名/.svn/entries,Web服务器返回信息如图1所示。
图1 SVN代码泄露
由图1可见,这里可能存在SVN代码泄露。攻击者继续使用SVN代码泄露利用工具,如图2所示。
图2 SVN代码泄露利用工具
我们可以看到,Web目录结构已经出来了,如图3所示。
图3 Web目录结构
几分钟后,代码就下载完成,打开index.php文件,可以看到是服务器代码而非HTML代码,如图4所示。
图4 服务器代码
由图4可见,这里确实存在SVN代码泄露。此时,攻击者就可以对该站点进行目录结构分析、敏感信息收集(如数据库链接文件)或者代码审计,试图寻找SQL注入、文件上传等漏洞实施进一步的渗透测试。
例2:某站存在GIT文件泄露。开启浏览器,输入某站主域名/.gitignore,Web服务器返回信息如图5所示。
图5 GIT文件下载
下载GIT文件,如图6所示。
图6 GIT文件泄露
可以看到,GIT文件中的内容其实已经泄露了Web站点的代码的目录结构。访问robots.txt文件,Web服务器返回信息如图7所示。
图7 GIT文件泄露
由图7可见,这里确实存在GIT文件泄露。如果想通过该GIT文件下载该Web站点的代码,可以使用GitHack这个工具。