☁️ 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=