Web安全——SVN源码泄露整站下载
1|0风险漏洞
1|1SVN源码泄露
SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范。“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。”(可以利用.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息)更严重的问题在于,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。
2|0验证结果
2|1漏洞情况
在此文件夹中找到了Subversion元数据目录(.svn)。 攻击者可以通过请求流行的版本控制工具Subversion创建的隐藏元数据目录来提取敏感信息。 元数据目录用于开发目的,以便在将一组源代码提交回中央存储库之前跟踪对一组源代码的开发更改(反之亦然)。 当代码从存储库滚动到活动服务器时,应该将其作为导出而不是本地工作副本来完成,因此会出现此问题。
验证地址或请求:http://www..com/.svn/entries
验证截图
Goby扫描IP(...**)发现SVN漏洞
在浏览器端进行验证,发现漏洞存在
可以浏览网站的源代码
apiclient_key.pem:
apiclient_cert.pem:
系统漏洞危害及整改建议
- 在web服务器配置文件中增加一段代码,过滤到.svn文件,返回404
nginx服务器:
location ~ ^(.*)/.svn/
{
return 404;
}
重启nginx
Apache服务器:
Order allow,deny
Deny from all
重启Apache
2. 查找服务器上所有.svn隐藏文件夹,删除
以下命令删除当前目录下.svn文件夹
find . -type d -name ".svn"|xargs rm -rf
rm -rf find . -type d -name .svn
find . -name ".svn" -type d | xargs rm -fr
find . -name ".svn" -type d | xargs -n1 rm -R
使用脚本删除
#!/bin/sh
cd /home/web/
find ./ -name ".svn" |xargs -n1 echo > /dev/null 2>&1
find ./ -name ".s
以上文件保存为.sh
执行之后,会删除 /home/web目录及其子目录中 所有 .svn 隐藏文件夹
- 开发人员在使用SVN时,严格使用导出功能。禁止直接复制代码。
__EOF__
作 者:WeberBon
出 处:https://www.cnblogs.com/Weber-security/p/15231738.html
关于博主:185猛男
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律