seay svn漏洞利用工具
Seay SVN漏洞利用工具第一次出现在我视野里,洞利是用工2013年前后。当时手里正好接了一个目标站,洞利指纹扫出来是用工SVN 1.6,根目录下挂着一个`.svn`文件夹。洞利浏览器直接访问`.svn/entries`,用工返回了一串文本,洞利里面清清楚楚列着所有受版本控制的用工文件名。那一刻的洞利感觉就像捡到一把钥匙,而Seay的用工工具就是把这把钥匙打磨得更顺手的东西。
这个工具说白了只干一件事:把SVN泄露出来的洞利元数据抓下来,还原成源码。用工但它的洞利价值在于把手动流程压缩成了点几下鼠标。传统做法是用工先用`wget -r`把`.svn`目录整个拖下来,再用`svn revert`或者写脚本解析entries文件逐个还原。洞利Seay直接集成了这些步骤,输入URL,选好线程数,它自动遍历`.svn/entries`里的文件列表,拼出原始路径,下载对应的`text-base`文件,最后按目录结构输出到本地。整个过程不需要你懂SVN的存储格式,也不需要手动拼接哈希值。
我印象最深的一次实战是2016年一个政府站群。主站打不动,但旁站的一个子目录存在`.svn`泄露。用Seay跑了一遍,还原出来一个`config.inc.php`,里面硬编码了数据库账号密码。用这套凭据去连主站的MySQL,端口没对外开放,但同一个密码在SSH上复用了。直接登进去,`/etc/shadow`可读。这种案例在当年并不少见,SVN泄露往往不是终点,而是横向移动的跳板。Seay把这一步的门槛拉低到几乎为零。
工具本身有个细节值得说。它对`entries`文件的解析分两种格式处理:SVN 1.6及以下用纯文本格式,1.7及以上改成XML。Seay两个都支持,但XML格式下如果服务端返回的是压缩后的响应,工具需要先解压再解析。早期版本在这块偶尔会崩,后来作者加了容错,遇到异常条目会跳过并记录日志。这个改进很实在,因为真实环境里的`.svn`目录往往不完整,有些文件被删了,有些路径被重写过。工具能跑完并输出可用结果,比追求100%还原更重要。
速度方面,Seay默认线程数是10,对于小站够了。大站群建议手动调到30-50,但别超过100,否则容易触发WAF或者把目标带宽打满。我曾经在一个教育站上开到80线程,结果目标服务器直接返回503,等了半小时才恢复。后来学乖了,先单线程试探,确认没有频率限制再逐步加。工具里有个“延时”选项,单位是毫秒,配合线程数用,能有效降低被封的概率。
现在SVN泄露已经少了很多,新项目基本都迁移到Git,`.svn`目录也大多被Nginx规则屏蔽。但老系统、内部测试环境、外包遗留项目里依然存在。Seay这个工具虽然多年没更新,核心功能依然能打。它的代码是C#写的,在Windows上跑最稳,Linux下用Mono也能凑合,但偶尔会有编码问题。如果你手里只有命令行,其实用Python写个几十行的脚本也能替代,但Seay的图形界面在批量测试时确实省事——拖进去一串URL,跑完直接看结果列表,不用来回切终端。
最后提一句法律边界。这工具本身不违法,但拿它去扫没有授权的目标就是另一回事了。我见过有人用Seay扫了某省厅的站,还原出源码后还在论坛上发帖炫耀,结果第二天就被请去喝茶。工具是刀,切菜还是砍人,取决于握刀的手。
(责任编辑:时尚)
