漏洞概述 #
在使用 SVN 管理本地代码过程中,使用 svn checkout 功能来更新代码时,项目目录下会自动生成隐藏的.svn
文件夹。
一些网站管理员在发布代码时,不愿意使用“导出”功能,而是直接复制代码文件夹到WEB服务器上,这就使得.svn
隐藏文件夹被暴露于外网环境
漏洞验证 #
访问目标存在以下文件
.svn/entries .svn/wc.db
漏洞利用 # .svn/pristine 目录 直接访问获得文件源代码 wc.db文件 用Navicat软件打开 wc.db文件,可以看到 NODES 表,遍历这个表里的每一行,就可以下载到整个项目里的代码了,而且还能得到对应的真实文件名。 REPOSITORY表里面存储了svn的项目路径和 uuid,如果没有做访问IP限制的话,可以直接使用此信息取得此项目的SVN权限(下载、提交等)
# pip安装 pip install dumpall # 查看版本 dumpall--version # 手动下载使用 git clone https://github.com/0xHJK/dumpall cd dumpall # 查看版本 python3 dumpall.py--version ./rip-svn.pl -v -u http://www.example.com/.svn/ http://x/.svn/pristine/