不安全的源代码管理 不安全的源代码管理(SCM)可能导致 Web 应用和服务中出现若干严重漏洞。开发人员通常依赖 Git 和 Subversion(SVN)等 SCM 系统来管理源代码版本。然而,不良的安全实践,例如在生产环境中将 .git 和 .svn 文件夹暴露在互联网上,会带来重大风险。 摘要 方法论 Bazaar Git Mercurial Subversion 实验环境 参考文献 方法论 在 Web 服务器上暴露版本控制系统文件夹可能会导致严重的安全风险,包括: 源代码泄露:攻击者可以下载整个源代码仓库,从而获取应用程序的逻辑。 敏感信息泄露:代码库中可能包含嵌入的密钥、配置文件和凭据。 提交历史泄露:攻击者可以查看过去的更改记录,从而发现之前曾暴露但后来已缓解的敏感信息。
不安全的源代码管理(SCM)可能导致 Web 应用和服务中出现若干严重漏洞。开发人员通常依赖 Git 和 Subversion(SVN)等 SCM 系统来管理源代码版本。然而,不良的安全实践,例如在生产环境中将 .git 和 .svn 文件夹暴露在互联网上,会带来重大风险。
在 Web 服务器上暴露版本控制系统文件夹可能会导致严重的安全风险,包括:
第一步是收集有关目标应用程序的信息。这可以通过各种 Web 勘察工具和技术来完成。
手动检查:通过导航到常见的 SCM 路径,手动检查 URL。
http://target.com/.git/http://target.com/.svn/自动化工具:请参阅与特定技术相关的页面。
一旦识别出潜在的 SCM 文件夹,就应检查 HTTP 响应码和内容。您可能需要绕过 .htaccess 或反向代理规则。
以下 NGINX 规则在访问 /.git 端点时,会返回 403 (Forbidden) 响应,而不是 404 (Not Found)。
location /.git { deny all; }
例如,在 Git 中,利用该技术并不需要列出 .git 文件夹的内容(http://target.com/.git/),只要能够读取文件,就可以继续提取数据。
免责声明:
本文件由基于人工智能的机器翻译服务翻译而成。尽管我们力求翻译准确,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言版本的文件为准。对于关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。