☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - 你在一个**网络安全公司**工作吗?你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)! - 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family) - 获得[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com) - **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** - **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
# 基本信息 Subversion是当今许多版本控制选项之一。它通常被缩写为SVN。\ Subversion用于维护项目的当前和历史版本。Subversion是一个开源的集中式版本控制系统。它在Apache下获得许可。它也被称为软件版本和修订控制系统。 **默认端口:**3690 ``` PORT STATE SERVICE 3690/tcp open svnserve Subversion ``` ## 横幅抓取 Banner Grabbing(横幅抓取)是一种用于获取目标系统信息的技术。在网络服务渗透测试中,横幅抓取是一项重要的任务,它可以帮助我们了解目标系统的版本、操作系统和其他相关信息。 横幅是指在与目标系统建立连接时,系统返回的一段包含有关服务和版本信息的文本。通过分析这些横幅信息,我们可以确定目标系统上运行的服务和版本,从而为后续的渗透测试活动做好准备。 横幅抓取可以使用多种工具和技术来实现。其中一种常用的方法是使用Telnet或Netcat等工具手动连接到目标系统,并查看返回的横幅信息。另一种方法是使用自动化工具,如Nmap或Bannergrab等,来扫描目标系统并提取横幅信息。 在进行横幅抓取时,需要注意以下几点: - 需要选择合适的工具和技术,以确保能够获取准确和完整的横幅信息。 - 需要对目标系统进行充分的信息收集,以了解目标系统上可能运行的服务和版本。 - 需要谨慎处理横幅信息,以避免暴露自己的身份和意图。 总之,横幅抓取是一项重要的技术,可以帮助渗透测试人员获取目标系统的关键信息。通过合理选择工具和技术,并结合充分的信息收集,我们可以更好地了解目标系统,并为后续的渗透测试活动做好准备。 ``` nc -vn 10.10.10.10 3690 ``` ## 枚举 ### 1. SVN版本探测 使用以下命令检测目标主机上运行的Subversion(SVN)版本: ```bash nmap -p 3690 --script svn-brute ``` ### 2. SVN元数据泄露 通过访问目标主机的SVN元数据,可以获取有关仓库和文件的信息。使用以下命令: ```bash svn ls svn://:3690 ``` ### 3. SVN源代码泄露 通过访问目标主机的SVN源代码,可以获取敏感信息,如用户名、密码和源代码。使用以下命令: ```bash svn checkout svn://:3690 ``` ### 4. SVN日志泄露 通过访问目标主机的SVN日志,可以获取有关提交历史和修改的详细信息。使用以下命令: ```bash svn log svn://:3690 ``` ### 5. SVN配置文件泄露 通过访问目标主机的SVN配置文件,可以获取有关仓库和服务器配置的信息。使用以下命令: ```bash svn cat svn://:3690/conf/svnserve.conf svn cat svn://:3690/conf/passwd svn cat svn://:3690/conf/authz ``` ### 6. SVN权限绕过 如果目标主机的SVN配置文件中存在未正确配置的权限,可以尝试绕过访问限制。使用以下命令: ```bash svn checkout --username --password svn://:3690 ``` ### 7. SVN代码注入 如果目标主机的SVN服务器存在代码注入漏洞,可以尝试注入恶意代码。使用以下命令: ```bash svn checkout --username --password svn://:3690/!svn/txr//payload ``` ### 8. SVN远程命令执行 如果目标主机的SVN服务器存在远程命令执行漏洞,可以尝试执行任意命令。使用以下命令: ```bash svn checkout --username --password svn://:3690/!svn/txr//cmd ``` ### 9. SVN后门 如果目标主机的SVN服务器存在后门,可以尝试使用后门访问目标系统。使用以下命令: ```bash svn checkout --username --password svn://:3690/!svn/txr//backdoor ``` ### 10. SVN身份验证绕过 如果目标主机的SVN服务器存在身份验证绕过漏洞,可以尝试绕过身份验证。使用以下命令: ```bash svn checkout --username --password svn://:3690/!svn/txr//../payload ``` ### 11. SVN远程文件包含 如果目标主机的SVN服务器存在远程文件包含漏洞,可以尝试包含远程文件。使用以下命令: ```bash svn checkout --username --password svn://:3690/!svn/txr//../file:///etc/passwd ``` ### 12. SVN文件上传 如果目标主机的SVN服务器允许文件上传,可以尝试上传恶意文件。使用以下命令: ```bash svn import --username --password svn://:3690// ``` ### 13. SVN文件删除 如果目标主机的SVN服务器允许文件删除,可以尝试删除文件。使用以下命令: ```bash svn delete --username --password svn://:3690// ``` ### 14. SVN文件修改 如果目标主机的SVN服务器允许文件修改,可以尝试修改文件内容。使用以下命令: ```bash svn checkout --username --password svn://:3690// ``` ### 15. SVN文件下载 如果目标主机的SVN服务器允许文件下载,可以尝试下载文件。使用以下命令: ```bash svn checkout --username --password svn://:3690// ``` ### 16. SVN文件覆盖 如果目标主机的SVN服务器允许文件覆盖,可以尝试覆盖文件内容。使用以下命令: ```bash svn checkout --username --password svn://:3690// ``` ### 17. SVN文件重命名 如果目标主机的SVN服务器允许文件重命名,可以尝试重命名文件。使用以下命令: ```bash svn move --username --password svn://:3690// svn://:3690// ``` ### 18. SVN文件复制 如果目标主机的SVN服务器允许文件复制,可以尝试复制文件。使用以下命令: ```bash svn copy --username --password svn://:3690// svn://:3690// ``` ### 19. SVN文件锁定 如果目标主机的SVN服务器允许文件锁定,可以尝试锁定文件。使用以下命令: ```bash svn lock --username --password svn://:3690// ``` ### 20. SVN文件解锁 如果目标主机的SVN服务器允许文件解锁,可以尝试解锁文件。使用以下命令: ```bash svn unlock --username --password svn://:3690// ``` ### 21. SVN文件标记 如果目标主机的SVN服务器允许文件标记,可以尝试标记文件。使用以下命令: ```bash svn propset --username --password svn:keywords "Id" svn://:3690// ``` ### 22. SVN文件属性修改 如果目标主机的SVN服务器允许修改文件属性,可以尝试修改文件属性。使用以下命令: ```bash svn propset --username --password svn:executable "yes" svn://:3690// ``` ### 23. SVN文件属性删除 如果目标主机的SVN服务器允许删除文件属性,可以尝试删除文件属性。使用以下命令: ```bash svn propdel --username --password svn:executable svn://:3690// ``` ### 24. SVN文件属性查看 如果目标主机的SVN服务器允许查看文件属性,可以尝试查看文件属性。使用以下命令: ```bash svn propget --username --password svn:executable svn://:3690// ``` ### 25. SVN文件属性列出 如果目标主机的SVN服务器允许列出文件属性,可以尝试列出文件属性。使用以下命令: ```bash svn proplist --username --password svn://:3690// ``` ### 26. SVN文件历史查看 如果目标主机的SVN服务器允许查看文件历史,可以尝试查看文件历史。使用以下命令: ```bash svn log --username --password svn://:3690// ``` ### 27. SVN文件差异查看 如果目标主机的SVN服务器允许查看文件差异,可以尝试查看文件差异。使用以下命令: ```bash svn diff --username --password svn://:3690// ``` ### 28. SVN文件合并 如果目标主机的SVN服务器允许文件合并,可以尝试合并文件。使用以下命令: ```bash svn merge --username --password svn://:3690// ``` ### 29. SVN文件回滚 如果目标主机的SVN服务器允许文件回滚,可以尝试回滚文件。使用以下命令: ```bash svn revert --username --password svn://:3690// ``` ### 30. SVN文件恢复 如果目标主机的SVN服务器允许文件恢复,可以尝试恢复文件。使用以下命令: ```bash svn cleanup --username --password svn://:3690// ``` ### 31. SVN文件标签 如果目标主机的SVN服务器允许文件标签,可以尝试标签文件。使用以下命令: ```bash svn copy --username --password svn://:3690// svn://:3690//tags/ ``` ### 32. SVN文件分支 如果目标主机的SVN服务器允许文件分支,可以尝试分支文件。使用以下命令: ```bash svn copy --username --password svn://:3690// svn://:3690//branches/ ``` ### 33. SVN文件合并冲突 如果目标主机的SVN服务器存在文件合并冲突,可以尝试解决冲突。使用以下命令: ```bash svn resolve --username --password --accept=