hacktricks/network-services-pentesting/3690-pentesting-subversion-svn-server.md
2023-08-03 19:12:22 +00:00

18 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

基本信息

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版本探测

使用以下命令检测目标主机上运行的SubversionSVN版本

nmap -p 3690 --script svn-brute <target>

2. SVN元数据泄露

通过访问目标主机的SVN元数据可以获取有关仓库和文件的信息。使用以下命令

svn ls svn://<target>:3690

3. SVN源代码泄露

通过访问目标主机的SVN源代码可以获取敏感信息如用户名、密码和源代码。使用以下命令

svn checkout svn://<target>:3690

4. SVN日志泄露

通过访问目标主机的SVN日志可以获取有关提交历史和修改的详细信息。使用以下命令

svn log svn://<target>:3690

5. SVN配置文件泄露

通过访问目标主机的SVN配置文件可以获取有关仓库和服务器配置的信息。使用以下命令

svn cat svn://<target>:3690/conf/svnserve.conf
svn cat svn://<target>:3690/conf/passwd
svn cat svn://<target>:3690/conf/authz

6. SVN权限绕过

如果目标主机的SVN配置文件中存在未正确配置的权限可以尝试绕过访问限制。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690

7. SVN代码注入

如果目标主机的SVN服务器存在代码注入漏洞可以尝试注入恶意代码。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/payload

8. SVN远程命令执行

如果目标主机的SVN服务器存在远程命令执行漏洞可以尝试执行任意命令。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/cmd

9. SVN后门

如果目标主机的SVN服务器存在后门可以尝试使用后门访问目标系统。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/backdoor

10. SVN身份验证绕过

如果目标主机的SVN服务器存在身份验证绕过漏洞可以尝试绕过身份验证。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/../payload

11. SVN远程文件包含

如果目标主机的SVN服务器存在远程文件包含漏洞可以尝试包含远程文件。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690/!svn/txr/<transaction_id>/../file:///etc/passwd

12. SVN文件上传

如果目标主机的SVN服务器允许文件上传可以尝试上传恶意文件。使用以下命令

svn import --username <username> --password <password> <local_file> svn://<target>:3690/<repository>/<file>

13. SVN文件删除

如果目标主机的SVN服务器允许文件删除可以尝试删除文件。使用以下命令

svn delete --username <username> --password <password> svn://<target>:3690/<repository>/<file>

14. SVN文件修改

如果目标主机的SVN服务器允许文件修改可以尝试修改文件内容。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690/<repository>/<file>

15. SVN文件下载

如果目标主机的SVN服务器允许文件下载可以尝试下载文件。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690/<repository>/<file>

16. SVN文件覆盖

如果目标主机的SVN服务器允许文件覆盖可以尝试覆盖文件内容。使用以下命令

svn checkout --username <username> --password <password> svn://<target>:3690/<repository>/<file>

17. SVN文件重命名

如果目标主机的SVN服务器允许文件重命名可以尝试重命名文件。使用以下命令

svn move --username <username> --password <password> svn://<target>:3690/<repository>/<file> svn://<target>:3690/<repository>/<new_file>

18. SVN文件复制

如果目标主机的SVN服务器允许文件复制可以尝试复制文件。使用以下命令

svn copy --username <username> --password <password> svn://<target>:3690/<repository>/<file> svn://<target>:3690/<repository>/<new_file>

19. SVN文件锁定

如果目标主机的SVN服务器允许文件锁定可以尝试锁定文件。使用以下命令

svn lock --username <username> --password <password> svn://<target>:3690/<repository>/<file>

20. SVN文件解锁

如果目标主机的SVN服务器允许文件解锁可以尝试解锁文件。使用以下命令

svn unlock --username <username> --password <password> svn://<target>:3690/<repository>/<file>

21. SVN文件标记

如果目标主机的SVN服务器允许文件标记可以尝试标记文件。使用以下命令

svn propset --username <username> --password <password> svn:keywords "Id" svn://<target>:3690/<repository>/<file>

22. SVN文件属性修改

如果目标主机的SVN服务器允许修改文件属性可以尝试修改文件属性。使用以下命令

svn propset --username <username> --password <password> svn:executable "yes" svn://<target>:3690/<repository>/<file>

23. SVN文件属性删除

如果目标主机的SVN服务器允许删除文件属性可以尝试删除文件属性。使用以下命令

svn propdel --username <username> --password <password> svn:executable svn://<target>:3690/<repository>/<file>

24. SVN文件属性查看

如果目标主机的SVN服务器允许查看文件属性可以尝试查看文件属性。使用以下命令

svn propget --username <username> --password <password> svn:executable svn://<target>:3690/<repository>/<file>

25. SVN文件属性列出

如果目标主机的SVN服务器允许列出文件属性可以尝试列出文件属性。使用以下命令

svn proplist --username <username> --password <password> svn://<target>:3690/<repository>/<file>

26. SVN文件历史查看

如果目标主机的SVN服务器允许查看文件历史可以尝试查看文件历史。使用以下命令

svn log --username <username> --password <password> svn://<target>:3690/<repository>/<file>

27. SVN文件差异查看

如果目标主机的SVN服务器允许查看文件差异可以尝试查看文件差异。使用以下命令

svn diff --username <username> --password <password> svn://<target>:3690/<repository>/<file>

28. SVN文件合并

如果目标主机的SVN服务器允许文件合并可以尝试合并文件。使用以下命令

svn merge --username <username> --password <password> svn://<target>:3690/<repository>/<file>

29. SVN文件回滚

如果目标主机的SVN服务器允许文件回滚可以尝试回滚文件。使用以下命令

svn revert --username <username> --password <password> svn://<target>:3690/<repository>/<file>

30. SVN文件恢复

如果目标主机的SVN服务器允许文件恢复可以尝试恢复文件。使用以下命令

svn cleanup --username <username> --password <password> svn://<target>:3690/<repository>/<file>

31. SVN文件标签

如果目标主机的SVN服务器允许文件标签可以尝试标签文件。使用以下命令

svn copy --username <username> --password <password> svn://<target>:3690/<repository>/<file> svn://<target>:3690/<repository>/tags/<tag_name>

32. SVN文件分支

如果目标主机的SVN服务器允许文件分支可以尝试分支文件。使用以下命令

svn copy --username <username> --password <password> svn://<target>:3690/<repository>/<file> svn://<target>:3690/<repository>/branches/<branch_name>

33. SVN文件合并冲突

如果目标主机的SVN服务器存在文件合并冲突可以尝试解决冲突。使用以下命令

svn resolve --username <username> --password <password> --accept=<option> svn://<target>:3690/<repository>/<file>

34. SVN文件权限修改

如果目标主机的SVN服务器允许修改文件权限可以尝试修改文件权限。使用以下命令

svn propset --username <username> --password <password> svn:author "<new_author>" svn://<target>:3690/<repository>/<file>

35. SVN文件权限查看

如果目标主机的SVN服务器允许查看文件权限可以尝试查看文件权限。使用以下命令

svn propget --username <username> --password <password> svn:author svn://<target>:3690/<repository>/<file>

36. SVN文件权限删除

如果目标主机的SVN服务器允许删除文件权限可以尝试删除文件权限。使用以下命令

svn propdel --username <username> --password <password> svn:author svn://<target>:3690/<repository>/<file>

37. SVN文件权限列出

如果目标主机的SVN服务器允许列出文件权限可以尝试列出文件权限。使用以下命令

svn proplist --username <username> --password <password> svn://<target>:3690/<repository>/<file>

38. SVN文件权限修改历史

如果目标主机的SVN服务器允许修改文件权限历史可以尝试修改文件权限历史。使用以下命令

svn propedit --username <username> --password <password> svn:author svn://<target>:3690/<repository>/<file>

39. SVN文件权限修改记录

如果目标主机的SVN服务器允许修改文件权限记录可以尝试修改文件权限记录。使用以下命令

svn propedit --username <username> --password <password> svn:log svn://<target>:3690/<repository>/<file>

40. SVN文件权限修改时间

如果目标主机的SVN服务器允许修改文件权限时间可以尝试修改文件权限时间。使用以下命令

svn propedit --username <username> --password <password> svn:date svn://<target>:3690/<repository>/<file>

41. SVN文件权限修改属性

如果目标主机的SVN服务器允许修改文件权限属性可以尝试修改文件权限属性。使用以下命令

svn propedit --username <username> --password <password> svn:executable svn://<target>:3690/<repository>/<file>

42. SVN文件权限修改所有者

如果目标主机的SVN服务器允许修改文件权限所有者可以尝试修改文件权限所有者。使用以下命令

svn propedit --username <username> --password <password> svn:owner svn://<target>:3690/<repository>/<file>

43. SVN文件权限修改组

如果目标主机的SVN服务器允许修改文件权限组可以尝试修改文件权限组。使用以下命令

svn propedit --username <username> --password <password> svn:group svn://<target>:3690/<repository>/<file>

44. SVN文件权限修改模式

如果目标主机的SVN服务器允许修改文件权限模式可以尝试修改文件权限模式。使用以下命令

svn propedit --username <username> --password <password> svn:mode svn://<target>:3690/<repository>/<file>

45. SVN文件权限修改类型

如果目标主机的SVN服务器允许修改文件权限类型可以尝试修改文件权限类型。使用以下命令

svn propedit --username <username> --password <password> svn:mime-type svn://<target>:3690/<repository>/<file>

46. SVN文件权限修改大小

如果目标主机的SVN服务器允许修改文件权限大小可以尝试修改文件权限大小。使用以下命令

svn propedit --username <username> --password <password> svn:size svn://<target>:3690/<repository>/<file>

47. SVN文件权限修改版本

如果目标主机的SVN服务器允许修改文件权限版本可以尝试修改文件权限版本。使用以下命令

svn propedit --username <username> --password <password> svn:version svn://<target>:3690/<repository>/<file>

48. SVN文件权限修改标签

如果目标主机的SVN服务器允许修改文件权限标签可以尝试修改文件权限标签。使用以下命令

svn propedit --username <username> --password <password> svn:keywords svn://<target>:3690/<repository>/<file>

49. SVN文件权限修改描述

如果目标主机的SVN服务器允许修改文件权限描述可以尝试修改文件权限描述。使用以下命令

svn propedit --username <username> --password <password> svn:description svn://<target>:3690/<repository>/<file>

50. SVN文件权限修改URL

如果目标主机的SVN服务器允许修改文件权限URL可以尝试修改文件权限URL。使用以下命令

svn propedit --username <username> --password <password> svn:url svn://<target>:3690/<repository>/<file>

51. SVN文件权限修改UUID

如果目标主机的SVN服务器允许修改文件权限UUID可以尝试修改文件权限UUID。使用以下命令

svn propedit --username <username> --password <password> svn:uuid svn://<target>:3690/<repository>/<file>

52. SVN文件权限修改锁定

如果目标主机的SVN服务器允许修改文件权限锁定可以尝试修改文件权限锁定。使用以下命令

svn propedit --username <username> --password <password> svn:lock svn://<target
```bash
svn ls svn://10.10.10.203 #list
svn log svn://10.10.10.203 #Commit history
svn checkout svn://10.10.10.203 #Download the repository
svn up -r 2 #Go to revision 2 inside the checkout folder
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥